코틀린 문법

oznni·2021년 8월 23일
0

기본 구문

var a = 10 // 변수
val b = 20 // 상수 (자바의 final)

함수

fun greet(str: String){
	println(str)
}

greet("Hello World")

자료형

// 1. 숫자형
var a = 10 // Int
var b = 10L // Long
var c = 10.0 // Double
var d = 10.0f // Float
// 2. 문자형
var char = 'H' // Char
var str1 = "Hello" // String
var str2 = """ Hello // 여러줄 표현
			World
            """
            
// 3. 문자열 비교
if(str1 == "Hello"){
	...
}

// 문자열 템플릿
println("$str1 World") // Hello World
println("${str}1World") // HelloWorld

배열

val numbers:Array<Int> arrayOf(1,2,3,4,5) // 유추 가능한 자료형 생략 가능
val numbers: arrayOf(1,2,3,4,5)
numbers[0] = 5

제어문

val x = 1
when(x){
1-> println("x == 1)
2,3 println("x == 2 or x == 3") // 여러값은 컴마로 구분
in 4..7 -> println("4 <= ㅌ <= 7")
!in 8..10 -> println("x < 8 && x > 10")
else ->{
print("x != 1 or x != 2")}
}

반복문

증가 범위 - ..
감소 범위 - downTo
증감 간격 - step

val numbers = arrayOf(1,2,3,4,5)

for(num in numbers){
 println(num) // 1; 2; 3; 4; 5;
}

for(i in 1..10){
 println(i) // 1; 2; 3; ... 10;
}

for(i in 0..10 step 2){
 println(i) // 1; 3; 5; 7; 9;
}

for(i in 10 downTo 1 step 2){
 println(i) // 10; 8; 6; 4; 2;
}

클래스

인스턴스 생성 시 자바와 다르게 new 키워드 사용 X

// 클래스 선언
class Person{
	// 생성자 선언
    constructor(name: String){
    	println(name)
    }
}


// 생성자를 갖는 클래스 선언
class Person(var name: String){
	init{
    	println(name)
    }
}

// 인스턴스 생성
var person = Person("woosung")
person.name = "youngjin" // 프로퍼티에 값 쓰기
println(person.name) // youngjin

클래스를 인스턴스화할 때 생성자 이외에도 init 블록에 작성한 코드도 가장 먼저 초기화된다.

profile
Android Developer.

0개의 댓글