본문 바로가기

분류 전체보기556

Kotlin] 37. for 앞서 설명했듯, 자바와 다르게 코틀린은 범위를 Range 함수로 표기한다. 게다가 자바와 int i를 선언하는 방식도 다르다. 이걸 응용해서 for문을 다시 만든다. package forEx fun main() { for (i : Int in 1..10) { println(i) } } 이것은 자바에서 for(int i=1; i 2020. 12. 11.
Kotlin] 36. 반복자 반복자는 구간 속 원소를 하나하나 빼내는 인터페이스이다. 코틀린은 이미 이 인터페이스가 구현되어 있다. interface Iterator { operator fun next() : T operator fun hasNext() : Boolean } next는 다음 값을 반환하고, hasNext는 값이 있는지 없는지 판단하여 Boolean으로 리턴한다. 예시를 보자. package iteratorEx fun main() { val range : IntRange = 1..3 val iter : Iterator = range.iterator() println(iter.hasNext()) println(iter.next()) println(iter.hasNext()) println(iter.next()) prin.. 2020. 12. 11.
Kotlin] 35. .. 연산자 .. 연산자는 범위를 표현하는 연산자이다. 자바는 1~10까지 연산을 표현하려면 (x>0 && x 2020. 12. 11.
Kotlin] 34. 제네릭 상속(in/out) Int는 Any를 상속한다. 그럼, AAA는 AAA를 상속할까? 아니다. 이 Int는 Any를 상속하지만, 이것이 제네릭이 되는 순간 이 둘은 별개의 값이 된다. 이것을 어떻게 상속할 수 있을까? 이것을 해결해줄 키워드가 in/out이다. package inOutEx class AAA class BBB fun main() { val aaaSub = AAA() val aaaSuper : AAA = aaaSub val bbbSub = BBB() val bbbSuper : BBB = bbbSub val star : AAA = aaaSub } out 키워드는 슈퍼 클래스에 서브 클래스를 대입할 수 있게 해주고, in 키워드는 서브 클래스에 슈퍼 클래스를 대입할 수 있게 해준다. 2020. 12. 11.
반응형