자료형
- 이중 등호(==)와 삼중 등호(===)의 사용
- 이중 등호(==)는 값만 비교할 때
- 삼중 등호(===)는 값과 참조 주소를 비교할 때
val a: Int = 128
val b: Int = 128
println(a == b) // true
println(a === b) // true (값만 비교했기 때문에 '참'이 나온다.)
val a: Int = 128 // 기본형
val b: Int? = 128 // 객체 (동적공간에 있음)
println(a == b) // true (일단 값은 같기에 true)
println(a === b) // false (위치가 틀리기 때문에 false)
연산자
- 산술 연산자
- , -, , /, *% (나머지, Modulus)** 가 있다.
if ((n % 2) == 1) {
println("n is an Odd number)
} // 홀수 구하기
if ((n % 2) == 0) {
println("n is an Even number")
} // 짝수 구하기
알고리즘에서 잘 써먹을 수 있음. (이거 몰라서 코테할때 힘들었음)
- 대입 연산자
= : 오른쪽 항의 내용을 왼쪽 항에 대입 ex) num = 2
+= : 두항을 더한 후 왼쪽항에 대입 ex) num += 2
-= : 왼쪽 항을 오른쪽 항으로 뺀 후 왼쪽 항에 대입 ex) num -= 2
*= : 두 항을 곱한 후 왼쪽 항에 대입 ex) num *= 2
/= : 왼쪽 항을 오른쪽 항으로 나눈 후 왼쪽 항에 대입 ex) num /= 2
%= : 왼쪽 항을 오른쪽 항으로 나머지 연산 후 왼쪽 항에 대입 ex) num %= 2
- 증감 연산자
++, --가 있음. ex) ++num or num++
앞에 붙었냐 뒤에 붙었냐에 따라 값이 다름
++num 은 num 값 증가 후 대입
num++ 은 먼저 num 값 대입 후 증가
fun main() {
var a: Int = 10
var b: Int = 10
var result1 = ++a
var result2 = b++
println("result1: $result1, result2: $result2")
println("a: $a, b: $b")
}
출력 결과: result1 : 11, result2 : 10 / a : 11, b : 11
- 비교 연산자
, <, >=, <=, ==, ===,
- != (값이 다르면), !== (참조가 다르면)*
- 논리연산자
&& : 논리곱으로 두 항이 모두 true일 때 true, 아니면 false
ex) var check = (5>3) && (5>2)
|| : 논리합으로 두 항중 하나의 항이 true일 때 true, 아니면 false
ex) check = (5>3) || (2>5)
! : 부정 단항 연산자로 true를 false로, false를 true로 바꿈
ex) check = !(5>3)
함수
- 함수를 간략하게 표현하는 방법
//일반적인 함수의 모습 fun sum(a: Int, b: Int): Int { return a + b }
//간략화된 함수
fun sum(a: Int, b: Int): Int = a + b
//반환 자료형 생략
fun sum(a: Int, b: Int) = a + b
// a와 b에 해당되는 자료형은 Int기 때문에 자료형도 추론이 가능하다.
return을 생략하고 등호를 사용하면 동일한 표현이 된다.
(함수에 리턴을 하지 않고 직접 값을 주었기 때문에?)
- 매개변수(parameters) 와 인자(arguments)
- 정의할 때 사용한 변수들을 함수의 매개변수라고 한다.
- 함수를 사용할 때는 인자 혹은 인수라고 한다.
- 반환자료형이 없는 함수
- 단순한 출력문으로 사용될 때
```kotlin
fun outfunc(name: String): Unit {
println("Name: $name")
}
fun outfunc(name: String): {
println("Name: $name")
}
fun outfunc(name: String):= println("Name: $name")
3가지 모두 같은 값을 나타낸다.
- 매개변수에 default를 넣을 수 있다.
fun sum(a: Int, b: Int = 5): Int {
return a + b
}
fun main() {
val result3 = sum(2)
}
출력 결과: 7
- 가변인자
fun normalVarargs(vararg a: Int) { for (num in a) { print("$num ") } }
fun main() {
normalVarargs(1)
normalVarargs(1, 2, 3, 4)
}
```
매개변수가 많아 지면 a: Int, b: Int, C: Int .....
일일이 쓰기 힘들 것이다. 그럴때 vararg를 사용해보자.
'Kotlin' 카테고리의 다른 글
내일배움캠프 12.08 TIL (2) | 2023.12.22 |
---|---|
내일배움캠프 12.07 TIL (1) | 2023.12.22 |
순수 함수 (0) | 2023.12.22 |
객체지향 프로그래밍 (2) | 2023.12.22 |
내일배움캠프 12.04 TIL (2) | 2023.12.22 |