문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Kotlin (문단 편집) === 간결한 문법 === * getter와 setter를 배제했다. 그냥 쓰지 말라고 IntelIiJ의 코드 제너레이트(Alt+Insert)에서 빼버렸다. 물론 쓰려면 당연히 쓸 수 있는데, 구글은 Java에서도 메모리와 속도 면에서 저 둘을 쓰지 말고 그냥 변수를 public으로 하라고 권장해 왔다.[* getter/setter 메서드와 public 필드 접근은 JVM이 동일한 바이트코드로 변환해주기 때문에 전혀 성능적인 차이가 없다.(물론, IDE에서 만들어주는 일반적인 getter/setter 가 아닌 추가적인 로직이 들어간 경우는 예외다.)] * 코틀린에서 신규로 추가된 data클래스를 사용한다면, 클래스의 getters, setters, equals(), hashCode(), toString()과 copy()를 '''한 줄로''' 선언할 수 있다! 변수(var) 및 상수(val)로 지정된 생성자 패러미터는 클래스의 멤버 변수/상수로 동작한다. {{{#!syntax kotlin data class Customer(var name: String, var email: String, var company: String) }}} * 람다 식을 지원한다. * 싱글톤 방식의 객체를 object로 만들 수 있다. {{{#!syntax kotlin object ThisIsASingleton { val companyName: String = "JetBrains" } }}} * in과 Range문이 있다. for문에도 쓸 수 있다! {{{#!syntax kotlin if (i in 1..10) { // equivalent of 1 println(i) } 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도 쓸 수 있다. {{{#!syntax kotlin when (x) { 0, 1 -> print("boolean") 2 -> print("콩\n콩") !in 1..9 step 2 -> print("홀수 아님") in 0..9 -> print("한자릿수") else -> print("otherwise") } }}} * is 연산자가 있다. 타입 체크, 자동 형변환 등이 가능하다. when문에도 쓸 수 있다. {{{#!syntax kotlin npcContainer.forEach { npc -> if (npc is Visible) npc.drawBody(gc, g) // npc가 Visible형으로 자동 변환되었다. if (npc is Glowing) npc.drawGlow(gc, g) // npc가 Glowing형으로 자동 변환되었다. } when (expr) { is Num -> expr.value // expr이 Num형으로 자동 변환되었다. is Sum -> eval(expr.left) + eval(expr.right) // expr이 Sum형으로 자동 변환되었다. else -> throw IllegalArgumentException("퉤에엣") } }}} * if문이 표현식으로 동작한다. {{{#!syntax kotlin val max = if (a > b) { print("Choose a") a } else { print("Choose b") b } }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기