2021/07/02 11

타입추론과 함수

타입추론이란? 변수나 함수들을 선언할 때나 연산이 이루어질때 자료형을 코드에 명시하지 않아도 코틀린이 자동으로 자료형을 추론해주는 기능입니다. 이는 변수가 선언될 때 할당된 값의 형태로 해당 변수가 어떤 자료형을 가진지 추론이 가능하기 때문입니다. 따라서, 반드시 특정한 자료형으로 지정해야하는 상황이 아니라면 대부분은 코틀린의 타입추론을 이용하여 코드량을 줄일 수 있습니다. 함수란? 함수는 특정한 동작을 하거나 원하는 결과값을 연산하는데 사용합니다. 다음과 같이 add라는 함수를 반환하는 값의 형태가 Int이므로 Int를 선언해줍니다. 그런데 이 함수는 단순히 더하는 역할만 하는 함수이므로 단일표현식함수를 사용할 수 있습니다. 방금전에 만든 함수와 같은 기능의 함수를 간단하게 표현할수 있는데요, 반환하는..

Android/Kotlin 2021.07.02

형변환과 배열

형변환이란? 하나의 변수에 지정된 자료형을 호환되는 다른 자료형으로 변경하는 기능을 말합니다. 만약, 형변환 작업없이 바로 변한값을 값 재정의 해버리면 오류가 납니다. kotlin은 자료형 간의 형변환을 지원하기 위해 형변환 함수를 제공하고 있습니다. to뒤에 반환될 자료형을 입력하면 됩니다. ex) toByte(), toShort(), toInt(), toLong() 다음과 같이 형변환 함수를 사용해주어야지 오류가 생기지 않습니다. 이러한 방식은 명시적인 형변환이라고 합니다. 형변환시 발생할 수 있는 오류를 막기 위해 다른 언어들이 지원하는 '암시적 형변환'은 지원하지 않습니다. 명시적 형변환이란? 개발자들이 직접 지정하여 형변환하는 작업을 말하는것이고 암시적 형변환이란? 변수를 할당할 시 자료형을 지..

Android/Kotlin 2021.07.02

선언방식, null 값을 사용하는 방법에 대해서(feat. null pointer exception)

클래스 이름은 파스칼 표기법을 사용합니다. (모든 단어를 대문자로 시작) ex) ClassName 함수나 변수 이름은 카멜 표기법을 사용합니다. (첫단어만 소문자로 시작) ex) functionName var val 일반적으로 통용되는 변수 언제든지 읽기 쓰기가 가능함 선언시에만 초기화 가능. 중간에 값을 변경할 수 없음 runtime시 값이 변경되는걸 원치 않는다면 val을 이용합니다. 이 현상은 일반 고전언어와 가장 큰 차이점인데요, 고전적인 언어들은 변수가 선언된 후 초기화 되지 않으면 기본값으로 초기화 되거나 값이 할당되지 않았다는 표시로 null값을 가지게 됩니다. 하지만, kotlin은 기본변수에서 null을 허용하지 않으며, 또한 변수에 값을 할당하지 않은채로 사용하게 되면 문법에러를 표시하..

Android/Kotlin 2021.07.02

Also 함수

Random.nextInt(100).also { print("getRandomInt() generated value $it") } Random.nextInt(100).also { value -> print("getRandomInt() generated value $value") } int value = Random().nextInt(100); System.out.print(value); 람다식에서 사용하는 방식인데, 매개변수를 통해서 값을 전달하는 방식입니다. 두가지 방법이 있는데, 첫번째 방법은 파라미터값이 없이 it으로 값을 출력하는 방법입니다. 두번째 방법은 파라미터 값을 value로 하고 value로 값을 출력하는 방법입니다. 이와같이 Also문은 람다식으로 사용하여 값을 반환하기 때문에 객체 유..

Android/Kotlin 2021.07.02

When 문

when(x) { 1 -> print("X==1") 2 -> print("X==2") else -> { print("X is neither 1 nor 2") } } when(x){ 0,1 -> print("X==0 or X==1") else -> print("otherwise") } when(x){ in 1..10 -> print("X는 1부터 10 범위 안에 있음") !in 10..20 ->print("X는 10부터 20 범위 안에 없음") else -> print("otherwise") } when(x){ is Int -> print("x는 인트형") else -> print("X는 인트형이 아님") } 다음과 같이 Switch문이 없는 대신에 When문이 있습니다.

Android/Kotlin 2021.07.02

For 반복문

for (i in 1..5) { println(i) } // 1 2 3 4 5 for (i in 6 downTo 0 step 2) { println(i) } // 6 4 2 0 for (i in 1..5 step 3) { println(i) } // 1 4 val numberList = listOf(100, 200, 300) for (number in numberList) { println(number) } // 100 200 300 다음과 같이 반복문을 보면 java와 다르다는것을 알 수 있습니다. 첫번째 반복문 뜻은 1을포함에서 1부터 5까지의 범위를 뜻합니다. 두번째 반복문 뜻은 6을포함해서 6부터 0까지 내려가는데 2칸씩 내려간다는 뜻입니다. 세번째 반복문 뜻은 1을포함해서 1부터 5까 3칸씩 증..

Android/Kotlin 2021.07.02