목표
코틀린 공부하기.
getter와 setter
-
getter와 setter를 배제했다. 그냥 쓰지 말라고 IntelIiJ의 코드 제너레이트(Alt+Insert)에서 빼버렸다. 물론 쓰려면 당연히 쓸 수 있는데, 구글은 자바에서도 메모리와 속도 면에서 저 둘을 쓰지 말고 그냥 변수를 public으로 하라고 권장해 왔다.
-
클래스의 getters, setters, equals(), hashCode(), toString()과 copy()를 한 줄로 선언할 수 있다! 변수(var) 및 상수(val)로 지정된 생성자 패러미터는 클래스의 멤버 변수/상수로 동작한다.
data class Customer(var name: String, var email: String, var company: String)
-
람다 식을 지원한다.
-
싱글톤 방식의 객체를 object로 만들 수 있다.
object ThisIsASingleton { val companyName: String = "JetBrains" }
-
in과 Range문이 있다.
if (i in 1..10) { // equivalent of 1 println(i) }
-
for문에도 쓸 수 있다!
for (i in 0..12 step 3) print("$i ") // 0 3 6 9 12 출력 for (i in 12 downTo 0 step 2) print("$i ") // 12 10 8 6 4 2 0 출력
-
switch/case가 when ->으로 대체되었다. 위의 in과 Range도 쓸 수 있다.
when (x) { 0, 1 -> print("boolean") 2 -> print("콩\n콩") !in 1..9 step 2 -> print("홀수 아님") in 0..9 -> print("한자릿수") else -> print("otherwise") }
-
is 연산자가 있다. 타입 체크, 자동 형변환 등이 가능하다.
npcContainer.forEach { npc -> if (npc is Visible) npc.drawBody(gc, g) // npc가 Visible형으로 자동 변환되었다. if (npc is Glowing) npc.drawGlow(gc, g) // npc가 Glowing형으로 자동 변환되었다. }
-
when문에도 쓸 수 있다.
when (expr) { is Num -> expr.value // expr이 Num형으로 자동 변환되었다. is Sum -> eval(expr.left) + eval(expr.right) // expr이 Sum형으로 자동 변환되었다. else -> throw IllegalArgumentException("") }
'Student > 모여서 각자 코딩' 카테고리의 다른 글
19년도 여름방학 모각코 8일차 목표 0719 (0) | 2019.07.19 |
---|---|
19년도 여름방학 모각코 7일차 회고 0718 (0) | 2019.07.18 |
19년도 여름방학 모각코 7일차 목표 0718 (0) | 2019.07.18 |
19년도 여름방학 모각코 6일차 회고 0712 (0) | 2019.07.12 |
19년도 여름방학 모각코 6일차 목표 0712 (0) | 2019.07.12 |