package my.demo
import java.util.*
//...
코틀린 어플리케이션에서 시작 지점은 main
function이다.
fun main() {
println("Hello world")
}
fun main(args: Array<String>) {
println(args.contentToString())
}
fun maxOf(a: Int ,b: Int): Int {
if(a > b) {
return a
} else {
return b
}
}
//함수에 로직이 간단한 로직일때 축약이 가능, return 타입이 추론 가능할 경우 생략 가능
fun maxOf(a: Int, b: Int) = if(a > b) a else b
// return 값이 없는 경우 Unit(Object)으로 리턴 함
// Unit은 Java에서 void 역할
fun printKotlin(): Unit {
println("hello Kotlin")
}
// Unit은 생략가능
fun printKotlin() {
println("hello Kotlin")
}
// val: immutable 변수 value의 약자
// 값의 할당이 1회만 가능, Java의 final와 유사한 개념
val a: Int = 1
val b = 2 // Type이 Int로 추론이 된다.
val c: Int // val
// var: mutable 변수 variable의 약자
// 값의 변경이 가능
var a = 5
a += 1
// const val: immutable 변수 val과의 차이점은 const val는 컴파일 시점에 값이 할당되어 있어야 한다. (컴파일 시점에 값이 할당되어 있어야 한다는 것은 함수나 클래스 생성자로 할당될 수 없고 기본 자료형으로 할당 되어야한다는 뜻)
// val은 사용되기 전 혹은 변수 선언시 값이 할당 되면 된다.
const val nubmer = 0 // 할당 가능
const val main = main()// 할당 불가능
//한줄 주석: //
// 여러줄 주석: /* */ (중첩 가능)
//한줄 주석입니다.
/*
여러줄 주석입니다.
/*여러줄 주석입니다.*/
*/
var a = 1
val s1 = "a is $a"
a = 2
val s2 = "${s1.replace("is", "was")}, but now is $a"
//console reslut -> a was 1, but now is 2