1. function
//메인함수
fun main(){
println("Hello World!")
}
//sum 을 반환하는 함수
fun sum(a: Int, b:Int) : Int{
return a+b
}
//같은 동작 다른 형태
fun sum(a: Int, b:Int) = a+b
//반환을 안하고 출력하는 함수
fun printSum(a: Int, b:Int) {
println("sum of $a and $b is ${a+b}")
}
2. Variables
- val : read-only 로컬 변수를 선언할 때 사용함 -> 오직 단 한번만 값을 할당할 수 있음
- var: 여러번 값을 할당할 수 있음, 로컬에서만 사용하지 않아도 됨
//val
val a : Int =1 // immediate assignment
val b= 2 // int type is inferred
val c : Int //type required when no initializer is provided
c= 3
// var
var x = 5 //'Int' type is inferred
3. Classes and Instances
//class 선언
class Rectangle (var height: Double, var length: Double){
var perimeter = (height+ length)*2
}
//class 호출 -> 자동으로 default constructor와 class 선언이 가능함
val rectangle = Rectangle(5.0, 2.0)
println("The perimeter is ${rectangle.perimeter}")
//상속
open class Shape
class Rectangle(var height: Double, var weight: Double): Shape(){
var perimeter = (height+ length)*2
}
4. String
//변수 선언
var a =1
val s1 = "a is $a"
a= 2
//s1의 is 를 was로 대체
val s2 = "${s1.replace("is", "was")}, but now is $a"
//결과
//a was 1, but now is 2
5. for loop
//list 선언
val items = listOf("apple", "banana", "kiwi")
//list 출력
for(item in items){
println(item)
}
//or
for(index in items.indicies){
println("item at $index is ${items[index]"}
}
6. while loop
val items = listOf("apple", "banana" , "kiwi")
var index=0
while(index< items.size){
println("item at $index is ${items[index]}")
index++
}
7. Ranges
//range with if
val x = 10
val y = 9
if(x in 1..y+1)
println("fits in range")
//range with for--(1)
for(x in 1..10 step 3)
println(X)
//range with for--(2)
for(x in 9 downTo 0 step 3){
print(x)
}
8. Nullable values and null checks
nullable type의 이름은 ?를 끝에 가져야한다
fun parseInt(str:String): Int? {
//...
}
//str이 integer값을 가지고 있지 않는 경우 null을 반환함
fun printProduct(arg1: String, arg2: String) {
val x = parseInt(arg1)
val y = parseInt(arg2)
// Using `x * y` yields error because they may hold nulls.
if (x != null && y != null) {
//x와 y는 자동으로 null 체크 후 non-nullable로 바뀜
println(x * y)
}
else {
println("'$arg1' or '$arg2' is not a number")
}
}
참고
https://kotlinlang.org/docs/basic-syntax.html#type-checks-and-automatic-casts
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] Null Safety (0) | 2022.09.13 |
---|