쏭식
Ssongcode;
쏭식
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • JAVA (21)
      • Basic (21)
    • Kotlin (14)
      • Basic (14)
    • Android (64)
      • Basic (24)
      • JETPACK (30)
      • Compose (8)
      • 파고들기 (2)
    • Project (4)
    • etc (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Kotlin
  • 객체지향
  • 코딩테스트
  • ViewModel
  • 컴포즈
  • 프로젝트회고
  • Android
  • 리사이클러뷰
  • DataBinding
  • 기초100제
  • Adapter
  • 메소드
  • Room
  • 자료구조
  • 변수
  • Jetpack
  • AAC
  • mvvm
  • 코드업100제
  • livedata
  • 상속
  • 자바
  • workmanager
  • 백준
  • 배열
  • 코틀린코테
  • compose
  • 알고리즘
  • 코테
  • 코틀린

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
쏭식

Ssongcode;

Kotlin/Basic

[Kotlin/Basic] 코틀린에서의 연산자

2022. 7. 22. 23:59

1. 연산자의 종류

자바에서 알고 있는 연산자는

단항연산자 : ++, --

산술연산자 : +, -, *, /, %

산술대입연산자 : +=, -= 

비교연산자 : > , < , <= , >= 등이 있었다.

 

코틀린에서도 모두 동일하게 쓰이고 있다.

하지만 자바에서 객체를 비교할 때에는 compareTo를 사용하곤 했었는데

코틀린에서는 다르다.

val money1 = JavaMoney(2_000L)
val money2 = JavaMoney(1_000L)

if(money1 > money2){
    println("1 > 2")
}

이렇게 객체를 비교할 때 자주 사용하는 연산자로 사용하지만, 실제로 자동으로 compareTo를 호출해준다.

 

2. 비교연산자와 동등성, 동일성

자바에서는 동일성에 ==을 사용하고, 동등성에 equals를 직접 호출하였다.

자바에서 ==는 주소와 값이 모두 동일했을 때 true가 나오고

equals는 값만 동일해도 true를 반환하였다.

 

코틀린에서는 이 부분에서 차이가 있다.

코틀린에서는 동일성에 ===을 사용하고, 동등성에 ==를 호출한다.

==를 사용하면 간접적으로 equals를 호출해준다.

val money3 = JavaMoney(1_000L)
val money4 = money3
val money5 = JavaMoney(1_000L)

println(money3 === money5) // false가 출력됨
//값은 같지만 주소는 다르기 때문에
println(money3 === money4) // 반면 이는 true가 출력됨

3. 논리연산자

fun fun1() : Boolean{
    println("fun 1")
    return true
}
fun fun2() : Boolean{
    println("fun 2")
    return false
}

위의 코드가 있다고 가정해보자.

Java와 완전히 동일함. java처럼 Lazy연산을 수행한다.
 */
if(fun1() || fun2()){
    println("본문")
}
/*
이렇게 되면 fun 1 과 본문이 출력이됨.
왜냐하면 fun1 을 보고 true인 부분을 알았으면 fun2와 관계없이 어차피 true일테니
fun2는 실행되지 않음
 */
if(fun2() && fun1()){
    println("본문")
}
//이도 마찬가지로 fun2가 false이기 때문에 fun1과 관계없이 false이므로 뒤에 함수는 실행되지 않음

자바와 동일하게 코틀린도 Lazy연산을 수행한다.

앞의 메소드만을 실행했을 때 결과가 도출될 경우에는 뒤에 메소드를 실행하지 않고, 본문이 실행이 된다.

4.  그 외의 연산자

1. in / !in

컬렉션이나 범위에 포함되어 있다, 포함되어 있지 않다

 

2. a..b

a부터 b까지의 범위 객체를 생성한다.

 

3. a[i] , a[i] = b

 

4. 객체끼리의 연산을 할 때 plus같은 메소드를 통해 하는 것이 아니라 객체끼리 직접 연산이 가능하다.

 

 

 

GitHub - SsongSik/Kotlin_Java_Practice: Practice kotlin grammar compared to Kotlin and Java.

Practice kotlin grammar compared to Kotlin and Java. - GitHub - SsongSik/Kotlin_Java_Practice: Practice kotlin grammar compared to Kotlin and Java.

github.com

 

저작자표시 (새창열림)

'Kotlin > Basic' 카테고리의 다른 글

[Kotlin/Basic] 코틀린에서의 예외처리  (0) 2022.08.13
[Kotlin/Basic] 코틀린에서의 반복문  (0) 2022.07.27
[Kotlin/Basic] 코틀린에서의 제어문  (0) 2022.07.25
[Kotlin/Basic] 코틀린에서의 Type  (0) 2022.07.21
[Kotlin/Basic] 들어가며, val/var 차이, 코틀린에서의 null  (0) 2022.07.20
    'Kotlin/Basic' 카테고리의 다른 글
    • [Kotlin/Basic] 코틀린에서의 반복문
    • [Kotlin/Basic] 코틀린에서의 제어문
    • [Kotlin/Basic] 코틀린에서의 Type
    • [Kotlin/Basic] 들어가며, val/var 차이, 코틀린에서의 null
    쏭식
    쏭식

    티스토리툴바