나미/안드로이드

코틀린으로 앱개발까지.. 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
반응형