이번 포스팅의 목표는 다음과 같다.
지난 시간에 배웠던 코틀린 RET를 열어보자. 그 후 원하는 코드를 입력하고 컨트롤 + 엔터를 누르면 실행이 된다.
기초적인 숫자 유형부터 살펴보겠다.
결과값의 리턴에 유형이 적혀있는 것이 보인다. 즉, 자동적으로 숫자를 인식해서 지정해준다.
Double * Int 시 더블로 지정되어진다.
이런 함수도 지원이 되지만 굳이 사용할 필요는 잘 없을 것 같다.
서로 다른 유형의 타입들은 에러가 표시가 된다.
Byte 를 Int, String, Double 로 변환을 하려면 오류가 표시된다.
다른 언어에도 있는 변환함수들이다. 같은 유형이 되어야지 지원이 된다.
그 외 숫자를 표현하기 위한 자리수 표현도 가능하다.
val 100Million = 1_000_000
val socialSecurityNumber = 999_99_99999L
val 16진수 = 0xFF_EC_DE_5E
val바이트 = 0b11010010_01101001_10010100_10010010010
_로 숫자 구분 가능
코틀린은 자바와 같이 변경 가능한 변수와 불가능한 변수로 나눈다. 이것을 각각 val, var라고 한다.
코틀린 문자열은 다른 프로그래밍 언어의 문자열과 비슷하게 작동한다.
문자열을 표현하는 "", 단일 문자를 표현하는 '' 과 연결을 하는 + 그리고
$ 같은 리터럴 문자도 지원한다.
if 문은 C 언어와 다를 것 없다. 다를건 코틀린에서는 조건도 범위를 사용가능하다.
1..100 같은 것도 조건문에 사용 가능하다.
코틀린에서 주목할만한건 when 문이 있다.
간단하게
when(조건){
값 -> 출력
in 값 가능하다
else 로 예외 처리
}
null은 여러 프로그래밍에서 버그를 일으키는 원인이 되었다. 코틀린은 nullable 변수를
도입하여 버그를 줄이려고한다.
이런식으로 null을 할당 하려고 하면 에러가 표시된다. 그럼에도 불구하고 null을 하려면 다음과 같이 해야한다.
조건문에서 var가 null인지 알아보고 값을 할당하는 문이다.
코틀린에서는 이것을 ? 으로 대체가 가능하다.
물음표를 던져서 var에 값이 있는지 물어보는 것이다.
var의 변수값이 null 인지 물어보고 null이면 중지시키고 그 다음 메소드를 호출하지 않는다.
다른 언어와 유사한 점이 많아서 간단히 넘어간다.
listof 로 선언한 것은 변경이 불가능하다. mutableListOf 로 선언한 것은 변경이 가능하다.
코틀린에서 자바 유틸을 사용 가능하다.
유형이 선언되지 않아서 모든 유형을 저장 가능하다.
특정 유형만을 가진 배열을 하는 것도 가능하다.
배열의 합체가 가능하다.
이런식으로 배열의 요소도 리스트가 될 수 있고, 리스트의 요소가 배열일수도 있다!
이런식으로 초기값을 선언할 때 코드로 초기화 할 수도 있다.
다른 언어와 유사하여 빠르게 넘어간다. 다른 점이라면 .. 같은 범위를 지정가능한 것이다.
while 이나 do while의 사용법은 특이한게 없다.
repeat는 해당 갯수만큼 반복하는 반복문이다.
코틀린의 기본적인 문법을 알아보았다. 다른 언어와 매우 유사하지만, 차이점도 존재했다.
마지막에 문제가 있어서 잠시 풀어보겠다.
질문 1
다음 중 변경할 수 없는 문자열 목록을 선언하는 것은?
▢ val school = arrayOf("shark", "salmon", "minnow")
▢ var school = arrayOf("shark", "salmon", "minnow")
▢ val school = listOf("shark", "salmon", "minnow")
▢ val school = mutableListOf("shark", "salmon", "minnow")
질문 2
다음 코드의 출력은? for (i in 3..8 step 2) print(i)
▢ 345678
▢ 468
▢ 38
▢ 357
질문 3
이 코드에서 물음표의 목적은 무엇인가? var rocks: Int? = 3
∘변수의 종류 rocks 고정되어 있지 않다.
▢ 변수 rocks 무효로 설정될 수 있다.
▢ 변수 rocks null로 설정할 수 없다.
▢ 변수 rocks 즉시 초기화해서는 안 된다.
질문1
var school = arrayOf("shark", "salmon", "minnow")
=> 선언 후 할당이 불가능한 var에 arrayof라는 재할당 불가능한 배열선언
질문2
357 => 3에서 스탭2만큼 증가
질문3
변수 rocks null로 설정할 수 없다.
=> rocks의 값이 Int인지 살펴보고 인트가 맞다면 3이 할당되는 nullable 선언이다.
다음은 코틀린의 함수에 대해 알아보자.