목록공부/Kotlin (17)
변명은 만개 결과는 한개
본 게시글은 Acaroom x Boostcourse Live! 콬! LIVE 강의 - 코틀린 특징 영상을 보며 정리한 글입니다 Kotlin 특징 코틀린의 특징 #1 - Statically Typed 기본적으로 정적 타입 언어이다 컴파일 시 변수의 자료형(Type) 이 결정되어 안전 코틀린과 달리 Python 혹은 JavaScript 는 동적타입 # Python 코드(동적 타입)의 예 m = 13 # int m = "hello" # str m = 13.0 # float // Kotlin 코드(정적 타입)의 예 var m: Int = 13 m = 15 // Ok m = "hello" // Error m = 15.0 // Error 단, Kotlin/JS 를 쓸 때는 동적 타입 지원을 위해 dynamic 키워..
Companion class companion object 일반적인 클래스의 변수와 메소드를 직접 접근할 수 있도록 만들어주는것. 간단히 말하면 java의 static 형태로 접근이 가능한 변수와 메소드를 만들어주는것 class 내에 정의할 수 있음 Java 에서처럼 Class.TYPE 형태로 직접 접근 가능 static은 아님 // class 내에 직접 접근을 위한 함수와 변수 정의 class Sample { val name: String = "Name" companion object { val type: Int = 0 fun isTypeZero(): Boolean { return type == 0 } } } interface와 함께 사용 interface Base { val name: String f..
보호되어 있는 글입니다.
클래스 상속(class inheritance) open class 코틀린은 class에 open 키워드를 붙이지 않으면 기본적으로 final 이다. 그러므로 클래스의 상속 을 하기 위해서는 open 키워드로 final 키워드를 제거해주어야한다 open class Empty(a: Int) class Sample(a: Int) : Empty() java View class 상속 ConstraintLayout 상속받는 코드를 예시로 생성자 연습 // secondary 생성자 활용 class CustomConstraintLayout( context: Context, attrs: AttributeSet?, defStyleAttr: Int) : ConstraintLayout(context, attrs, defSty..
유용한 null 처리 방법 안전한 형 변환 Java 의 경우 instanceof 키워드를 사용하여 안전하게 처리 Object object = "name"; // String int index = 0; if (object instanceof Integer) { index = (int) object; } System.out.println("index " + index); // output: 0 Kotlin 의 경우 as(casting) 뒤에 ? 키워드를 붙여 안전하게 형 변환 val a: Any? = "ABC" val b: Int? = a as Int // Cast Exception 발생 val b: Int? = a as? Int // output: null val b: Int? = a as? Int ?: ..
null 예외처리 Elvis Operator Elvis Operator -> ?: java 의 삼항연산자에서 ? 와 : 를 따로 쓰는것과 비교해서, 붙어있음 var temp: String? null // 1. if / else 사용 가능 // 2. safe call 사용 가능 // 3. Elvis Operator val size = temp?.length ?: 0 // output : 0 | length Elvis Operator 유용하게 사용하기 // JAVA String temp = null; textView.setText(temp != null ? temp : ""); // KOTLIN val temp: String? = null // textView.text = if (temp != null) t..
null 처리방법 Null 처리 자바 (기본적으로)null을 허용한다 Annotation 으로 @NonNull, @Nullable 지정 가능 public void set(@NonNull String a, @Nullable String b) { // ... } Annotation을 사용할 수 있으나 아래 코드 또한 사용 가능 set(null, null); 코틀린 (기본적으로)null을 허용하지 않음 null을 명시적으로 나타내기 위해서 ?을 추가해야한다 자바와 달리 IDE 에서 null을 사용할 수 없음을 즉시 알려줌 fun set(a: String, b: String?) { // ... } null을 허용하지 않은 변수인 a 에 null을 대입하면 IDE 단에서 즉시 오류가 발생함. 아래와 같은 코드 사..
Return, Jumps, This Expression Jump Expression return 반환할 때 break 빠져나갈때 continue 특정 조건에 대해서만 처리하지 않을 때. 이러한 jump expression을 label 과 함께 사용했을때 어떻게 달라지는지 확인 Label 정의 정의할 때 : name@ 사용할 때 : @name Break and Continue Labels loop@ for (i in 1..100) { for (j in 1..100) { if (j > 10) break@loop print(j) } println() } println("end") output: 12345678910end Return at Labels vak ints = mutableListOf(1, 2, 0,..