fun main(args: Array<String>) {
println("Hello World!")
}
코틀린은 class가 아니라 function단위로 이루어져 있다.
변수들은 Array<String> 에 있고 자바 iter처럼 읽을 수 있는듯 하다.
타입 없이 val,var 이 있다
1. val은 읽기 전용
2. var은 그냥 변수이다
따로 타입은 없는듯 하다.
val a = "t"
val b = 1
var d = 1
d = 2
// b = 2 에러
자바와 다르게 그냥 println(), print() 함수로 출력이 가능하다.
출력시 중간에 $변수명을 이용해서 출력이 가능하다.
println("d: $d")
println("b: ${b+1}")
println("a: $a")
만약 내부 연산을 때리고 싶으면 ${} 로 감싸면 된다.
코틀린은 변수 타입을 추론한다고 한다.
그러니까 var, val에 값을 넣으면 그에 따라 값의 타입을 알아서 때려 맞춘다.
| Categories | BasicType |
|---|---|
| Integer | Byte, short, int, long |
| UnsignedIntegers | UByte,UShort, UInt, ULong |
| Floating-point numbers | Float, Double |
| Characters | char |
| String | string |
위와 같은 타입이 있다.
선언과 동시에 타입지정을 하려면
val d: Int
같은 방법으로 할 수 있다.
초기화는 뒤에 = 하고 값을 주면 된다
val d: String = "value"
크게
1. List
2. Set
3. Map
으로 나뉜다.
var, val 처럼 List, MutableList 가 있다.
List는 변경 불가능 하다.
생성시 읽기전용은 listOf()로 생성하고
나머지는 mutableListOf()로 생성한다.
mutalbe의 경우
val test: MutableList<type> = mutableListOf()
이고 나머지는
val test = listOf() 로 생성한다.
만약 MutableList로 만든값의 변경을 원하지 않는다면
다시 List로 변경 가능하다
.first,.last로 Deque처럼 사용 가능하다
count로 개수새고
원소가 있는지 확인은 in을 사용한다. ex)object in list
.add, .remove 로 더하고 뺀다
위와 똑같다
val 변수 = setOf()
val 변수: MutalbleSet<type> = mutalSetOf()
로 한다. 위와같이 변경 가능 set을 변경 불가능하게도 가능하다.
set은 정렬되어있지 않다 -> []로 접근 불가능하다
나머지
는 똑같다.
val 변수명 = mapOf(typeA to typeB, ~)
val 변수명: MutableMap<typeA, typeB> = mapOf(typeA to typeB, ~)
로 한다. 이것도 변경가능을 읽기전용으로 바꿀 수 있다.
읽기위해서 map[]에 key를 넣으면 value가 나온다.
이 외에도