Kotlin/Types
-
[Kotlin] ArrayKotlin/Types 2021. 12. 16. 17:05
https://kotlinlang.org/docs/basic-types.html#arrays Basic types | Kotlin kotlinlang.org 코틀린 배열 1. primitive 타입 배열 2. 객체 타입 배열 1. primitive 타입 배열 (package kotlin 패키지 , Arrayskt 파일에 각 primitive 타입 배열 클래스들이 선언되어 있다) ByteArray, CharArray, ShortArray, IntArray, LongArray, FloatArray, DoubleArray, BooleanArray 각 배열 클래스는 iterator() 메서드를 제외하고 같은 구조로 되어있다. IntArray를 확인해보자. (자바의 int[] 배열에 맞게 자동으로 구현이 된다) ..
-
[Kotlin] Nothing, UnitKotlin/Types 2021. 8. 16. 15:28
인터넷의 여러 글들을 읽어봤지만 Nothing과 Unit의 차이에 대해 정확하게는 모르겠고 어떠한 식으로만 써야하는지에 대해서만 안것 같다. 이해를 위해 글의 순서가 뒤죽박죽일 수 있다. Any는 모든 타입의 조상 타입 Nothing은 모든 타입의 서브 타입 Unit은 싱글톤 인스턴스로 자바의 void를 나타낸다. 함수가 리턴되지 않을 경우 Unit대신 Nothing을 쓰자. Nothing은 모든 타입의 서브 타입 fun test(): 조상타입{ return 자손인스턴스 } 자손인스턴스는 조상타입으로 캐스팅 가능하기 때문에 컴파일 에러가 발생하지 않는다. 마찬가지로 코틀린에서 throw 표현식은 Nothing타입이다. Nothing은 모든 타입의 서브타입이기 때문에 어떠한 타입으로도 캐스팅 될 수 있다...
-
[Kotlin] Type check and Type castsKotlin/Types 2021. 8. 13. 19:02
kotlin은 nullable변수가 존재해서 간단한 연산자조차도 어렵게 느껴진다...... is와 as연산자를 살펴보고 ?가 붙어있을 때는 어떻게 동작하는지에 대해서 알아보자. 다음과 같이 사용할 수 있다. x is String? x is String x as String x as? String x as? String? 코틀린에서는 nullable한 변수가 존재하기 때문에 연산자를 사용할 때도 상황에 따라 ?를 붙여줘야 한다. is and !is operator - 타입 체크 연산자 변수에 담겨있는 인스턴스가 비교하는 클래스와 같은범위, 넓은범위이면 true 비교하는 인터페이스를 구현하였으면 true 자바의 instanceof연산자와 같다. 밑의 테스트1, 테스트2, 테스트3는 x is 클래스? 에 대한..
-
[Kotlin] 코틀린 패키지 / .kt파일과 .java파일 (feat. top-level선언)Kotlin/Types 2021. 7. 21. 21:50
Extension Function을 다시보다가 top-level 접근제한자를 보려고 들어왔는데 어찌이리 개판으로 정리해놨는지 다시 정리한다.... 이미지 출처: Do it 코틀린 프로그래밍 패키지 선언은 자바처럼 소스파일의 첫줄에 한다. It is not required to match directories and packages: source files can be placed arbitrarily in the file system. 코틀린의 경우 디렉토리(폴더)구조와 패키지구조의 일치는 필수가 아니다. 그러나 관습으로 일치시켜야 한다( 헷갈리게 다르게 하는 사람이 있을까?? ) 이클립스의 경우 폴더와 패키지가 일치해야 했다. 일반적으로 안드로이드 스튜디오에서 파일이나 패키지를 만들때 디렉토리와 패키지..
-
[Kotlin] val / const valKotlin/Types 2021. 7. 21. 18:32
val 프로퍼티 runtime시점에 값을 할당 할당 가능한 타입: 기본 타입, 참조 타입 const val 프로퍼티 const키워드 compile시점에 값을 할당 compile시점에 할당된다는 것은 메서드, 생성자 등으로 할당할 수 없다는 말이다. 그렇기 때문에 기본 자료형의 리터럴로 초기화해야한다. 또는 현재 const val 프로퍼티의 코드 윗줄에 선언된 다른 const 프로퍼티로 초기화하는 것도 가능하다 할당 가능한 타입: 기본타입, String 다음의 조건을 만족하지 않으면 에러가나게 된다. read-only(val)프로퍼티의 값을 compile시점에 예상할 수 있으면 const modifier를 사용해라. const프로퍼티는 다음을 만족해야 한다. top-level 프로퍼티가 가능하다(top-l..
-
[Kotlin] 변수/자료형Kotlin/Types 2021. 7. 7. 19:04
main함수 fun main(){ } fun main(args:Array){ } 변수 종류 var - 일반 변수 val - java의 final변수(한번 초기화하고 값을 변경 할 수 없음) 변수 선언 및 초기화 fun main(){ var a: Int //변수 선언 a= 3 //변수 초기화 } fun main(){ var a: Int= 3 //변수 선언과 동시에 초기화 } fun main(){ var a= 3 //Int타입 자동 추론(Inferred type) //var b; 변수 타입 지정없이 선언과 초기화 따로 불가능 //b=4; } 자료형 자료형을 설명하기 전에 자바와 코틀린의 다른 점 자바에서는 참조 변수에 명시적으로 null을 지정할 수 있었다. 또한 primitive타입에는 null을 넣을 수..