kotlin 기본 (변수,함수,array, collection)
2021. 3. 17. 09:40ㆍ개발하는중/kotlin
728x90
반응형
요즘 kotlin을 자바보다 더많이 쓰이게 되지 않을까 싶어서 공부를 시작했습니다.
뭐 java가 게속 쓰일수 있지만 안드로이드는 확실히 kotlin이기도 하고 google에서 밀어주는 언어이기때문에
시작해봅니다. ㅎㅎ 차근차근 공부하면서 올릴계획입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package org.kotlinlang.play
fun main() {
// final
val temp:Int = 1
// int, string, float, double
var temp0:String? = null // ? == 변수에 null값 허용한다는 문법
var temp1:String = "Hello kotlin"
println(temp)
println(temp0)
print(temp1)
println(hello0())
print(hello())
}
fun hello0() { // void hello0(){}
}
fun hello(): String{ //private String hello()
return "객체 hello"
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package org.kotlinlang.play
fun main() {
// 1. class
// 2. data class
// 1. 코딩
// 2. 호출
var cls = HelloClass() // 기본 생성자
var cls1 = HelloClass(10) // 보조 생성자
// java 호춯법
// HelloClass cls = new HelloClass();
println(cls.age)
var person = Persion(21, "test")
println(person)
println(person.age)
println(person.name)
}
class HelloClass{
var age:Int = 0
// 호출 될때 초기화 값을 넘길수 없음
// init {
//
// }
// default 생성자, 보조 생성자 값을 넘길수 있으며 초기화함
constructor() // 생성자
constructor(age: Int){ // set
this.age = age
} // 보조생성자
}
data class Persion(var age:Int, val name:String)
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package org.kotlinlang.play
fun main() {
// 1. 배열
// 2. loop반복
// 3. 캐스팅
// 1. 배열 = {"","",""}
var arr0 = listOf("1","2") // java 에서 ArrayList 같으나 수정은 불가능 하다
var arr1 = mutableListOf("1","2") // java 에서 ArrayList 같으나 수정 가능
println(arr0)
// arr0.add //불가능
arr1.add("3")
// 2. 반복문 (java에서 썻던 향상된 반복문 사용)
for (item in arr1 ){ // 기본 for문
println(item)
}
for ((index, item) in arr1.withIndex() ){ // 배열의 인덱스까지 보여줌
println("$item => $index")
}
// 3. casting object => java기준으로 String, int, long 전부 담울스 있는 객체 kotlin 에선 Any로 씀
var temp: Any = "hello"
if (temp is String){
var str: String = temp; // 바로 스트링 객체에 담음
// 자바에선 String str = (String) temp;
// 캐스팅 해줘야 하지만 코틀린에선 조건문에 맞아서 조건문 안에
// 들어오는 경우 auto casting 기능으로 캐스팅 되어있음
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package org.kotlinlang.play
fun main(){
// map
var map0 = mapOf(Pair("number","1")) // 수정 불가능
var map1 = mutableMapOf<String, String>() // 수정 가능
map1.put("number","2")
map1.put("String","ㄱ")
for (item in map0){
println(item)
}
println("------------------------------------");
for (item2 in map1){
println(item2)
println(item2.value)
println(item2.key)
}
println(map1.keys) // 키 들만 출력
}
|
cs |
728x90