나미/안드로이드
코틀린으로 앱개발까지.. 4. 함수, nothing, null허용
규남
2023. 10. 10. 16:58
반응형
정말 기초부터 혼자 공부하면서 같이 정리해나가는 정리노트
1. Any
- Any는 코틀린에서 최상위 클래스
- Any 타입으로 선언한 변수에는 모든 타입의 데이터 허용
fun main()
{
var data1 : Any = 10
var data2 : Any = "Hi"
var data3 : Any = 3.3
println(data1)
println(data2)
println(data3)
}
2. 함수 선언
- 코틀린에서 함수를 선언하려면 fun 키워드를 사용해야한다
- 반환 타입이 없다면 자동으로 Unit타입이 적용되며 생략가능하다
- 함수의 매개변수에는 var, val 키워드를 사용할 수 없다
- 매개변수에는 기본값을 선언할 수도 있다 (default)
- 매개변수 역시 없다면 생략가능하다
fun main()
{
// 함수 선언
// 매개변수 x, 반환값 x
fun nameming()
{
println("Hong gil dong")
}
// 매개변수 O, 반환값 x
fun nameming2(str : String) : Unit
{
println(str)
}
// 매개변수 O, 반환값 O
fun sum(data1 : Int, data2 : Int) : Int
{
return data1 + data2
}
// 매개변수 O, 반환값 O, data2의 값이 없을 경우 10으로 대체
// default값
fun sum2(data1 : Int, data2 : Int = 10) : Int
{
return data1 + data2
}
// 함수 호출
nameming()
nameming2("Kim")
var sum = sum(3,4)
println(sum)
var sum2 = sum2(3)
println(sum2)
}
3. Nothing, null 허용
- null만 대입가능
- 변수로써의 기능은 없으므로 거의 사용안함
- 주로 함수의 반환형에 사용
- null 값을 대입하기 위해서는 항상 ?연산자가 앞에 붙어야한다
- 안드로이드 버전이 올라감에 따라 ?가 없이도 null 들어갈 수도 있다
fun main()
{
// 사실상 그냥 null이라는 의미로 무쓸모
var data1 : Nothing? = null
var data2 = null
// Nothing을 이용한 함수사용
fun some1() : Nothing?
{
return null
}
fun some2() : Nothing
{
throw Exception()
}
// null 허용
var num1 : Int = 10
num1 = null // 오류 null허용 못함
var num2 : Int? = 20
num2 = null // ?연산자로 인한 null 허용
}
728x90
반응형