삼항 연산자
없음switch
대신 when
사용: collection 자료형(내부 값)에 대해 가변과 불편 구분
생성
// 내부 값 수정 불가능
val immutableList = listOf("A", "B", "C")
값 가져오기
: 아래 3가지 방법 다 동일함, 리스트[0]
로 작성된 첫번째 방법이 자주 쓰임
immutableList[0]
// or
immutableList.get(0)
// or
immutableList.first
값 변경
val immutableList = listOf("A","B","C")
// error
immutableList[0] = "Foo"
// error
immutableList.add("Foo")
listOf로 할당 받은 리스트는 내부 값 변경 불가
그러면? 아래와 같이 변경가능한 리스트로 선언 mutableListOf()
후 수정
val mutableList = mutableListOf("A", "B", "C")
// 0번째 인덱스 값 변경
mutableList[0] = "1";
// 마지막 인덱스 값 추가
mutableList.add("D")
println(mutableList) // [1, B, C, D]
: 배열, 사이즈 할당 필요하고 메모리 할당 이미 되서 나옴
// 내부 값 수정 가능
val myArray = arrayOf("A", "B", "C")
값 가져오기와 값을 변경하는 코드는 mutableList와 동일합니다.fun maxBy(a:Int, b:Int):Int {
if(a>b) {
return a;
} else{
return b;
}
}
위 코드를 아래와 같이 한줄로 표기 가능
fun maxBy(a:Int, b:Int) = if(a>b) a else b
if(조건) a else b
로 사용유사 스위치
fun checkNumber(score: Int) {
when(score){
0 -> println("0")
1 -> println("1")
2,3 -> println("2or3")
4..10 -> println("4~10")
else -> println("other")
}
}
,
는 2또는 3..
는 4부터 10까지 4,5,6,7,8 과 동일