Kotlin

내일배움캠프 12.06 TIL

공부처음하는사람 2023. 12. 22. 20:49

자료형

  • 이중 등호(==)와 삼중 등호(===)의 사용
    • 이중 등호(==)는 값만 비교할 때
    • 삼중 등호(===)는 값과 참조 주소를 비교할 때
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