[Kotlin] 코틀린 기본 문법 (Main)
2022. 5. 4. 00:49- 클래스 선언
fun main() {
var car = Car(speed = 12)
print("name: ${car.name}, age: ${car.speed}")
}
class Car(var name: String = "Benz", var speed: Int)
- 조건문
// 캐스트 조건
if(num is Int){
println(num)
}
// 기본 조건문
if (input < 0)
println("음수")
else if (input > 0)
println("양수")
else
println(0)
- 연산
==는 내부적으로 equals를 호출한다. 따라서 참조 타입인 두 개의 String을 ==연산으로 비교하면 주소값이 아닌 값(동등성)비교를 한다.
val a: String = "hi"
val b: String = "hi"
println(a == b) // true
출처: https://wooooooak.github.io/kotlin/2019/02/24/kotiln_%EB%8F%99%EB%93%B1%EC%84%B1%EC%97%B0%EC%82%B0/
- 반복문
01 package six_two_one
02
03 fun main(args: Array<String>) {
04 var sum: Int = 0
05 for(i in 1..10) {
06 sum += i
07 }
08 println(sum)
09 }
출처: https://kkangsnote.tistory.com/65 [깡샘의 토마토:티스토리]
01 val list = listOf("Hello", "World", "!")
02 val sb=StringBuffer()
03 for(str in list) {
04 sb.append(str)
05 }
06 println(sb)
출처: https://kkangsnote.tistory.com/65 [깡샘의 토마토:티스토리]
- 함수
a+b을 반환하는 함수,
특징 1. 앞에 fun을 적어줘야함.
특징 2. 변수명이 앞에옴 (a: Init)
특징 3. 반환타입은 제일 뒤에옴
fun sum(a: Int, b: Int): Int {
return a + b
}
- NULL 체크
var a: Int = 10
a = null // 불가능, 문법상 오류 발생
var b: Int? = null
b = null // 가능
- 기타 정보
val: 불변(Immutable) 변수로, 값의 읽기만 허용되는 변수. 값(Value)의 약자.
var: 가변(Mutable) 변수로, 값의 읽기와 쓰기가 모두 허용되는 변수. 변수(Variable)의 약자.
- 생성자
주 생성자에 어노테이션이나 가시성 변경자(visibility modifiers)가 없다면 생성자 키워드는 생략할 수 있음.
// constructor 키워드 사용
class Person constructor(firstName: String) {/*...*/}
// constructor 키워드 생략
class Person(firstName: String) {/*...*/}
var user = User("eeun")
- !!
https://hororolol.tistory.com/572
NULL이 될 수 있는 타입
- 코틀린의 모든 타입은 기본적으로 널이 될 수 없는 타입이다.
- 코틀린은 널이 될 수 있는 타입을 명시적으로 지원한다.
- 타입 옆에 물음표(?)를 표시한다.
- NULL이 될 수 있는 타입의 변수이지만, 현재 NULL이 아님을 주장할 수 있다.
- 느낌표 2개(!!)를 변수 뒤에 붙인다.
- 이 표시를 통해 null이 될 수 없는 변수에 null이 될 수 있는 타입을 주입할 수 있다.
- 널이 될 수 있는 타입인 변수에 대해 메서드를 호출하면 NPE가 발생할 수 있으므로, 코틀린은 그런 메서드 호출을 금지함으로써 NTE 발생을 예방한다.
foreach문
https://ddolcat.tistory.com/561
'Kotlin(코틀린) > Kotlin(코틀린)' 카테고리의 다른 글
[Kotlin(코틀린)] String to UTF8 변환하는 코드 (0) | 2022.09.13 |
---|---|
[Kotlin] lateinit 키워드 (0) | 2022.05.04 |
[Kotlin] 기본 basic code (0) | 2021.07.04 |