Hello World! 출력하기 (BOJ 2557)
fun main() = print("Hello World!")
- 한 줄짜리 함수는 중괄호{} 를 생략하고 등호= 를 통해 표현할 수 있습니다.
- 이 때 함수의 리턴 타입(return type)과 우변의 리턴 타입은 같아야 합니다.
- 함수의 리턴 타입을 명시하지 않을 시, 우변의 리턴 타입이 자동으로 캐스팅됩니다.
예 ) fun func() = 3
다음과 동일) fun func():Int { return 3 }
- 기본 콘솔 출력 함수에는 print()와 println()이 있으며, 동작은 동일하나 println()은 마지막에 개행(줄바꿈)이 추가됩니다.
알람 시계 설정 (BOJ 2884)
fun main() {
val input = readLine()!!.split(" ").map { it.toInt() }
var h:Int = 0
var m:Int = 0
if (input[1] < 45) {
if (input[0] == 0) h = 23 else h = input[0] - 1
m = input[1] + 15
} else {
h = input[0]
m = input[1] - 45
}
print("$h $m")
}
- "시간 분"을 콘솔에 입력하면, 24H 기준 시각으로 45분 이전의 시각이 출력되는 문제
- readLine() 함수는 기본 입력 함수로, 리턴 타입은 String?입니다. 즉, null 혹은 String을 리턴합니다.
- 콘솔 창의 엔터(개행)을 기준으로 문자열을 입력받으며, 입력값이 없을 시, 혹은 file의 끝에 도달하면 null을 리턴하게 됩니다.
- split함수는 kotlin.text라는 패키지의 함수로, 문자열을 특정 문자열(delimiters)로 잘라서 List<String>을 반환합니다.
- map함수는 이름과 다르게, 객체의 각 iterable의 값을 변경하여 새로운 List를 반환합니다.
- Kotlin에서는 삼항연산자를 지원하지 않으며, if - else 문을 활용할 수 있습니다.