3-2 변수와 함수

StrayCat·2022년 10월 3일
0

변수 선언

val data1:Int = 10
var data2:Int = 20

val : value 변경 불가능
var : variable 변경 가능


추론 가능한 타입은 생략 가능

val data1 = 10

최상위 혹은 클래스 멤버 변수는 초기값 할당이 필요하다. ( 함수 내부는 불필요 )
만약 나중에 할당하려면 lateinit, lazy 키워드를 사용한다.

lateinitvar과 사용하며, 기초타입 객체와는 사용할 수 없다.

lateinit var data3: String

lazyby lazy{...}로 사용한다. 최초 호출시 중괄호 부분 실행되어 마지막 줄이 값이 된다.

val data4: Int by lazy{
    println("asdf")
    10
}

Char 은 Number 비교 불가

String 삼중 따옴표 사용 가능
String 문자열 템플릿 사용 가능

$name, ${sum(10)}


  • Any : 최상위 클래스이므로 모든 데이터 할당 가능
val data1: Any = 10
var data2 :Any ?= "asdf"
  • Unit : return 값이 없는 함수 (표시 생략 가능)
fun some() : Unit{
    println(10)
}
fun some() {
    println(10)
}
  • Nothing : null 혹은 예외

null 대입 가능 (?)

var data2 : Int? = null

null 불허용

var data1 : Int = 10

함수 선언

fun some(data1: Int): Int{
    return data1 * 2
}

Array

var arr2 = arrayOf<Int>(1,2,3)
val arr1 : Array<Int> = Array(3) { 0 }

뒤에 람다함수 부분은 따로 괄호로 빠짐


Collection Interface

  • List : 순서있음, 데이터중복 허용
  • Set : 순서없음, 데이터중복 비허용
  • Map : 키-값, 순서없음, 키중복 비허용

가변 : MutableList, MutableSet, MutableMap
불변 : List, Set, Map

0개의 댓글