코틀린의 변수는 초기값을 보고 타입을 추론하며, 기본 타입들 간의 변환은 명시적으로 이루어진다. 코틀린에서는 is, !is, as, as? 를 이용해 타입을 확인하고 캐스팅한다 Any는 Java의 Object와 같은 최상위 타입이다. Unit은 Java의 void와 동일하다 Nothing은 정상적으로 끝나지 않는 함수의 반환을 의미한다 1.기본타입 코틀린에서는 선언된 기본값을 보고 타입을 추론한다 Java는 기본 타입간의 변환은 암시적으로 이루어질 수 있다. kotlin은 기본 타입간의 변환은 명시적으로 이루어져야 한다. 코틀린에서 타입 변환을 하기 위해서는 명시적으로 to변환을 사용해야 한다. fun main() { val number1 = 3 val number2: Long = number1.toLo..
Java -> Kotlin public boolean startsWithA1(String str) { if (str == null) { throw new IllegalArgumentException("null이 들어왔습니다"); } return str.startsWith("A"); } fun startsWith(str: String?) : Boolean { return str?.startsWith("A") ?: throw java.lang.IllegalArgumentException("null이 들어왔습니다.") }Java -> Kotlin public Boolean startsWithA2(String str) { if (str == null) { return null; } return str.start..
💡 build.gradle(module) SDK 설정 android { compileSdk 32 defaultConfig { applicationId "com.kyhslam.part2.helloworld" minSdk 21 targetSdk 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } CompileSdk 어떤 안드로이드 SDK 버전으로 앱을 컴파일 할 것인지 지정 앱 개발 당시의 최신 API를 컴파일 SDK로 지정할 것을 권장 minSdk 앱을 사용할 수 있는 최소한의 API레벨 targetSdk 앱이 기기에서 동작할 때 사용하는 API 레벨 (앱이 개발시에 테스..
For / While fun forAndWhile(){ val students = arrayListOf("joyce", "james", "jenny", "jennifer") for (name in students) { println(name) } for ((index, name) in students.withIndex()) { println("${index+1}번재 학생: ${name}") } var name: String? = "something" name?.let { println(it) } var sum: Int = 0 for (i in 1..100) { sum += i } println("sum -> ${sum} ") } Nullable / NonNull fun nullcheck() { //NPE..
When 사용법 fun main() { helloWorld(); println(add(4, 5)) val name = "kyhslam" println("my name is ${name} ddf") println(maxBy2(4, 7)) } fun add(a: Int, b: Int): Int { return a + b } fun maxBy2(a: Int, b: Int) = if (a > b) a else b //when 사용법 fun checkNum(score: Int) { when (score) { 0 -> println("this is 0") 1 -> println("") 2, 3 -> print("this is 2 or 3") } var b = when (score) { 1 -> 1 2 -> 2 el..