시작

코틀린 큰도약

일단 코틀린을 시작하며 많은 문법을 쭉 봤는데, 거의 자바, 자바스크립트와 일치한다 그래서 좀 특이하다 싶은 부분만 정리하려 한다

When 절

var winner = when {
	computerChoice == playerChoice -> "Tie"
	...
}

다음과 같이 when 절을 통해 변수에 값을 적용할 수 있고 기존 Else if 문을 when 절로 대체할수 있다

When 사용방법

 
````ad-black
```js
if (randomNumber == 1){
...
} else if (randomNumber == 2) {
...
} else ...
```
기존 else if 문은 위와 같은 꼴이라면 코틀린에서 when절은 다음과 같다
````
 
````ad-black
```kotlin
when (randomNumber) {
	1 -> computerChoice = "Rock"
	2 -> computerChoice = "Paper"
	...
}
```
위와 같이 사용할 수 있다.
````

Class

따로 패키지안에서 클래스를 만들어 사용한다 메인함수에서 패키지를 불러와 실행시키기 때문에 불러온 패키지에 클래스를 만든다 거의 다른 언어의 문법과 유사하고 init을 사용해 초기상태를 만든다

Data Classes

코틀린에 있는 특이한 클래스인데 그냥 어떤 정보의 정보를 담기만을 위한 클래스이다. 말그대로 데이터 클래스

data class User(val name: String, var age: Int)

이 말은 User라는 이름과 나이를 지는 데이터를 사용하겠다는 뜻이다.

Mutable List

listof 라는 리스트를 만드는 함수가 있는데 기본적으로 Immutable 함수이다. 추가 삭제가 불가하다 따라서 수정및 삭제를 하기위해서는 Mutable List를 사용해야한다

// Immutable
val shoppingList = listOf<String>("Processor","RAM","Graphics Card", "SSD")
// Error: shoppingList.add()
// Mutable
val shoppingList2 = mutableListOf<String>("Processor","RAM","Graphics Card", "SSD")
shoppingList2.add("Power")
println(shoppingList2)

Set 메소드

set 메소드를 통해 특정 인덱스의 요소를 수정할 수 있다.

val shoppingList2 = mutableListOf<String>("Processor","RAM","Graphics Card", "SSD")
shoppingList2.add("Power")
println(shoppingList2)
shoppingList2[2] = "HDD"
shoppingList2.set(1, "Water Cooling")
println(shoppingList2)

List for 루프

for (item in shoppingList2) {
println(item)
}
for (item in (0 until shoppingList2.size)) {
println(item)
}