본문 바로가기

Kotlin

(16)
6) Nullable 과 NonNull 자바와 달리 Kotlin에서는 따로 정해진 null 예외처리가 없으면 기본적으로 변수에는 null값이 들어갈 수 없다. 그래서 null값을 허용하기 위해 nullable을 활용한다. 그 연산자를 알아보자 ? => Nullable 타입으로 만들어주기 NPE : Null Pointer Exception은 자바에서는 런타임 시에만 잡을 수 있는 에러 이지만 코틀린에서는 컴파일 시점에 잡을 수 있도록 "?"연산자를 지원한다. ?.toUpperCase() null이 아니면 toUpperCase()를 하고 null이면 null을 반환 var nameInUpperCase = name.toUpperCase() // name이 null이면 NPE가 나지만 var nullNameInUpperCase : String? = ..
5) 반복문 val students : ArrayList = arrayListOf("joyce", "james", "jenny", "jennifer") for(name : String in students){ println("${name}") } for( String name : students) { } // 자바의 향상된 for문 = for( name : String in students) { } // 코틀린 1에서 10 var sum:Int = 0 for(i:Int in 1..10){ sum += i } 1에서 10 사이 두칸식 띄어서(1, 3, 5, 7, 9) var sum2:Int = 0 for(i:Int in 10..10 step 2){ sum2 += i } 10부터 1까지 내려가라(10, 9, 7, .....
4) Array and List Array Any (== 자바에서 Object 로 두는것과 비슷) => 이런식으로 초기화 배열 인덱스의 값을 바꿀 수 있다. (val인것과는 상관없다..(배열 자체의 크기나 참조값만 바뀌지 않으면 되나보다..) List MutableList
3) 조건식 코틀린 조건식의 특징은 기존 자바에선 If, when문이 자바에서는 Statement, 즉 단순 명령문으로만 사용됬다면 코틀린에서는 어떠한 값을 만드는 표현식인 Expression으로 사용될 수 있다는 것이다. (※ 사실 코틀린에서 모든 함수는 Expression이다. (Unit타입을 리턴하기 때문)) if fun maxBy(a2:Int b2:Int):Int { if(a2>b2){ // 명령문으로서만 사용되고 있는 if문 return a2 } else { return b2 } } 그러나 이렇게 값을 도출하는 Expression으로서 쓰일 수 있다. fun maxBy2(a2:Int, b2:Int) = if(a2>b2) a2 else b2 when fun checkNum(score:Int){ when(sco..
2) val vs var 과 String Template val : val = value, 바뀌지 않는 상수, 초기화 이후 수정될 수 없다. var : var = variation, 변할 수 있는 수, 변수 Val 과 Var의 공통점 : 타입을 자동추론해줘서 생략해도 된다. 그러나 선언만할시 타입은 정해놔야한다. String Template : 문자열안에서 편하게 변수명으로 외부의 변수를 가져올 수 있는 방법(기능) ${변수명}
1) 함수와 접근제한자 리턴값이 없는 경우 fun helloWorld() : Unit{ //:Unit==void리턴값이없을때 println("HelloWorld!") } 파라미터와 리턴값이 있는 경우 fun add(a : Int, b : Int) : Int{ //Integer==Int,변수명:타입 return a + b } function의 블록은 생략될 수 있다 fun sum(a:Int, b:Int) = a + b fun main() { println("sum of 19 and 23 is ${sum(19, 23)}") // sum 함수 호출 } Unit은 생략될 수 있다 fun printSum(a:Int, b:Int){ println("sum of $a and $b is ${a+b}") } -------------------..