본문 바로가기

# 02/코틀린

[Kotlin] Null 예외처리 if/else 대신 사용하기 - java -> java에서는 3항 식을 사용할 수 있다. String temp = null;int size = temp != null ? temp.length() : 0; if/else 대신 사용하기 - kotlin var temp : String? = null// val size = if (temp != null) temp.length else 0 ->val size = temp?.length var temp : String? = ""val size = temp?.length - 결과 : length 또는 null Elvis Operator을 사용하여 null인 경우 값을 지정하자 - Elvis Operator : ?: var temp : String? = null// ..
[Kotlin] Null 처리 방법 java - null을 허용한다.- Android Annotation을 이용하여 @NonNull과 @Nullable을 지정할 수 있다. Null 처리 메소드 - java public void set(@NonNull String a, @Nullable String b) {if(a == null) throw new NullPointerException("a is null"); // a가 null일 시 NullPointerException을 발생시킬 수 있다.System.out.println("a " + a + ", b " +b);} -> Annotation을 사용할 수 있지만 다음 코드를 사용할 수 있다.set(null, null);// 빌드시 에러 안생김. kotlin - 기본적으로 null을 허용하지 않..
[Kotlin] return and jumps and This-expressions Jump Expression - return // 값을 반환- break // 루틴을 빠져나갈 때- continue // 특정 조건에서만 처리하지 않을 때 Labels 정의 loop@ for (i in 1..100) {// ...} -> label을 정의할 때는 name@-> label을 사용할 때는 @name Break and Continue Labels for (i in 1.. 100) {for (j in 1.. 100) {if (j > 10) breakprint( j )}println()}println("end") -> label 추가for (i in 1..100) {loop@ for (j in 1..100) {if (j > 10) break@loopprint(j)}println()}println(..
[Kotlin] Lambda Lambdas -> javabutton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick (View view) {view.setAlpha(0.5f);}}); -> kotlinbutton.setOnClickListener {view -> view.alpha = 0.5f}-> view 생략가능 파라미터가 한개인 경우button.setOnClickListener {it.alpha = 0.5f} it : implicit name of a single parameter Lambdas Closures -> javaint count = 0;Button button = findViewById(R.id.button);button.set..
[Kotlin] Control Flow - if/when/loops if fun test() {val a = 10val b = 20var max = aif ( a b ) a else b} fun test() {val a = 10val b = 20val max : Intif ( a > b ) {max = a} else {max = b}} fun test() {val a = 10val b = 20val max : Intval min : Intif ( a > b ) {max = amin = b} else {max = bmin = a}}println("max $max min $min") java switch int a = 10;switch (a) ..
[Kotlin] Function Defining function - java void 함수명 (변수) {값 처리;} 리턴타입 함수명 (변수) {return 값} Defining functions - 비교 void 함수명 (변수) {값 처리;}리턴타입 함수명(변수) {return 값;} fun 함수명(변수) : Unit { // Unit은 생략 가능값 처리} fun 함수명(변수) : 리턴타입 {return 값} Defining functions - 예 int getSum(int a, int b) {return a + b;} fun getSum(a : Int, b : Int) : Int {return a + b} // return 생략fun getSum (a : Int, b : Int) : Int = a + b // 유추하기를 통한 생략f..
[Kotlin] Class class - java class 클래스이름 {클래스이름(변수) {생성자 정의}} class - kotlin java class 클래스이름 {클래스이름(변수) { }} kotlin class 클래스이름 constructor(변수) { }class 클래스이름(변수) { } class - java 다중 생성자 class Sample {private String name;private int age; Sample(String name) {this.name = name;}Sample(String name, int age) {this(name);this.age = age;}} class - kotlin 다중 생성자 // primary constructor - constructor 생략 가능class Sample ..
[Kotlin] Properties and Fields 변수 선언 방법 - kotlin 변수타입 변수이름 = 초기화;String name = ""; val/var 변수 이름 : 변수 타입 = 초기화val/var name : String = "" - valuable / immutable (val) : Read-only -> java final- variable / mutable (var) : Read/Write String name = "Name"; var name : String = "Name"// 유추하기var name = "Name"// 대치var name = "name"name = "ABC" final String name = "Name"; val name : String = "Name"// 유추하기val name = "Name"// 대치 시name =..