Hello, World
fun main(agrs: Array<String>) {
println("Hello, world")
}
코틀린에서는 함수를 만들때 fun 키워드를 사용한다. 또한 파라미터 이름 뒤에는 타입을 쓴다.
System.out.println 대신 println이라고 사용하며 코틀린 라이브러리에서 자바 라이브러리 함수를 쉽게 사용하기 위해 감싼 래퍼를 제공하며 println도 그 중 하나이다.
세미콜론을 붙이지 않아도 된다.
fun max(a: Int, b: Int): Int {
return if(a > b) a else b
}
fun키워드 뒤에는 함수 명 그 뒤는 파라미터 목록 그 뒤에 타입은 반환타입이다.
위의 코드를 아래와 같이 더 간결하게 표현할 수 있다.
fun max(a: Int, b: Int): Int = if(a > b) a else b
이러한 함수를 식이 본문인 함수라고 부른다. (인텔리j에서는 식본문으로변환, 블록본문으로변환 하는 메뉴가 있다.)
fun max(a: Int, b: Int) = if(a > b) a else b
위의 코드와 같이 타입을 생략하면 컴파일러가 분석을하여 반환 타입을 지정해준다 (타입 추론)
val answer = 123
val answer: Int = 123
두번째 변수와 같이 타입을 명시해도 되고 첫번째와 같이 명시하지 않아도 된다.
코틀린에는 두 가지 변수가 있다
- val(value) - 키워드의 변경 불가능한 참조를 저장하는 변수 (자바의 final과 같다.)
- var(variable) - 변경 가능한 변수 (자바의 일반 변수와 같다.)
자바
Person person = new Person("bob", true);
System.out.println(person.getName());
>> bob
System.out.println(person.isMarried());
>> true
코틀린
val person = Person("bob", true)
println(person.name)
>> bob
println(person.isMarried)
>> true
코틀린은 자바와 달리 게터를 호출하는 대신 프로퍼티를 직접 사용하고 코드는 더 간결해졌다.
자바에서틑 세터로 이혼여부를 기록한다면 코틀린에서는 프로퍼티에 값을 넣어주면 된다.
val maxValue =
if(a>b) {
a else b
}
위와같이 같을 리턴하는 if문을 만들 수 있다. 코틀린에서는 삼항 연산자를 지원하지 않기 때문에 if문을 사용하여 구현할 수 있다.
val value = 3
when (value) {
1 -> println(1)
2 -> println(2)
else -> println(3)
}
코틀린에도 자바의 switch문과 같이 when문이 있다. switch와 비교하면 case: 는 -> 로 표현하고 default는 else로 표현한다
코틀린에서는 범위를 사용한다
기본적으로 두 값으로 이뤄진 구간이며 그 두값은 정수나 숫자 타입이고 .. 연산자로 시작과 끝을 연결하여 범위를 만든다
val oneToTen = 1..10
fun readNumber (reader: BufferedReader) {
val num = try {
Integer.parseInt(reader.readLine())
} catch (e: NumberFormatException) {
return
}
println(number)
}
>> val reader = BufferedReader(StringReader("not a number”))
>> readNumber(reader)
try키워드도 if나 when과 같이 식이며 변수에 대입할 수 있다. if와는 달리 본문내용을 중괄호로 둘러싸야한다.
'Kotlin' 카테고리의 다른 글
[Kotlin] Kotlin in Action 1장 (0) | 2022.08.09 |
---|