1. 변수의 선언
val = 재할당 불가능
var = 재할당 가능한 변수
1-1 변수의 타입
변수의 이름 뒤에 타입을 선언 해준다.
val cost : Int = 10;
1-2 null
명시적으로 null 선언이 불가능하다.
val cost : String = null;
해당 코드는 불가능 하다.
null 을 명시적으로 선언하기 위해서는 타입의 뒤에는 " ? " 키워드를 사용한다.
val cost : String? = null;
2 반복문과 분기처리
일반적인 프로그래밍과 같다.
반복문 : repeat
분기문 : if 또는 " when " 을 사용한다.
2-1 when 을 사용하여 깔끔하게 작성하기
val answerString : String = when {
count == 42 -> "I have the answer."
count > 35 -> "The answer is close."
else -> "The answer eludes me."
}
println(answerString)
위에서 : String 의 타입은 추론할 수 있기에 생략할 수 있다. ( when 의 리턴 값이 "String " 밖에 없으므로 )
2. 함수의 선언
2-1 함수 내부의 변수는 최대한 생략하라.
fun generateAnswerString(countThreshold: Int): String {
val answerString = if (count > countThreshold) {
"I have the answer."
} else {
"The answer eludes me."
}
return answerString
}
에서 함수 내부의 변수를 최대한 생략하여 작성하자.
fun generateAnswerString(countThreshold: Int): String {
return if (count > countThreshold) {
"I have the answer."
} else {
"The answer eludes me."
}
}
위와 같이 심플하게 작성하자.
2-2 익명함수
말 그대로 이름이 없는 함수. (자바 스크립트의 내용과 비슷하다)
val stringFunc : ( String) -> Int = {
// 익명함수 실행 로직
}
: 이후가 익명함수의 매개변수와 , 반환타입, 함수 실행 부분
당연하게도 즉시 실행되지 않는다. 호출해서 사용해야 한다. 이 부분은 자바스크립트의 내용과 상이하다.
2-3 고차함수
자바스크립트의 함수는 다른 함수의 인자로 사용할 수 있다는 메커니즘과 동일하다.
코틀린에서는 아래의 코드로 표시한다.
선언
fun stringMapper(str: String, mapper: (String) -> Int): Int {
// Invoke function
return mapper(str)
}
호출
stringMapper("ABC", { input -> input.length })
간단하다.
3. 클래스
클래스 역시 다른 " java " , " JavaScript " 와 동일하다.
3-1 클래스 선언
class local {
val wheels = listof<Wheel>()
}
3-2 클래스 함수 및 캡슐화
자바의 부분과 동일하다.
class Car(val wheels: List<Wheel>) {
private val doorLock: DoorLock = ...
fun unlockDoor(key: Key): Boolean {
// Return true if key is valid for door lock, false otherwise
}
}
get set 과 비슷한 메커니즘으로 사용한다.
private 멤버 변수를 선언하여, 해당 값을 조작할 수 있는 건 오직 unlockDoor 뿐이다.
'백엔드 > 기타' 카테고리의 다른 글
| [Apache Kafka] 카프카의 기본 개념 (0) | 2021.08.04 |
|---|---|
| MVC vs Web Flux (0) | 2021.08.04 |
| [Apache KafKa] 자주 사용하는 커맨드 모음 (0) | 2021.08.02 |
| [apache kafka] 설치하기 (0) | 2021.07.28 |