Zayson
A to Zayson!
Zayson
전체 방문자
오늘
어제
  • 분류 전체보기 (132)
    • Computer Science (20)
      • Network (4)
      • DB (12)
      • OS (4)
    • Algorithm (32)
      • 완전탐색(Brute-Force) (3)
      • 그리디(Greedy) (6)
      • 투포인터(Two-Pointer) (1)
      • 그래프(Graph) (5)
      • BFS & DFS (9)
      • 구현, 시뮬레이션(Implementation) (5)
      • 다이나믹 프로그래밍(DP) (3)
    • Backend (51)
      • Spring Boot (19)
      • JPA (16)
      • Kafka (2)
      • Java (13)
      • Kotlin (1)
    • DevOps (1)
      • Jenkins (5)
      • Oracle Cloud Infrastructure (1)
      • Kubernetes & Docker (1)
    • Trouble Shooting (3)
      • JPA (1)
      • Spring Boot (2)
    • 회고 (5)
      • 엔빵 프로젝트 포스트 로드맵 (1)
      • 2022년 (4)
    • Kafka (7)
      • Kafka (5)
      • Kafka Connect (2)
    • 기술 서적 (6)
      • 데이터 중심 애플리케이션 설계 (3)
      • 개발자가 반드시 정복해야할 객체 지향과 디자인 패턴 (2)
      • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • Backend
  • Java
  • 완전탐색
  • SpringBoot
  • Computer science
  • BFS
  • Kafka Connect
  • 나 혼자 스프링부트!
  • 백준
  • dfs
  • CS
  • JPA
  • 라이브스터디
  • 엔빵프로젝트
  • 그리디
  • 프로그래머스
  • 구현
  • spring boot
  • kafka
  • 관계형 데이터베이스 실전 입문

최근 글

티스토리

hELLO · Designed By 정상우.
Zayson

A to Zayson!

Kotlin 맛보기 - 변수
Backend/Kotlin

Kotlin 맛보기 - 변수

2022. 7. 15. 16:49
  • 코틀린은 변수 선언 시 var, val을 사용한다.
    • var : Variable, 수정 가능한 가변 변수
    • val : Value, Read-Only인 불변 변수 (Java의 final )
// Kotlin
var number1 = 10L  // 가변
number1 = 20L

val number2 = 10L  // 불변
numbre2 = 20L      // 에러

// Java
long number1 = 10L;
numbre1 = 20L;

final long number2 = 10L;
number2 = 20L;

 

  • 코틀린은 타입을 컴파일 시점에 추론하기 때문에 타입을 작성하지 않아도 되지만, 변수 : 타입으로 지정하는 것이 가능하다.
// Kotlin
var number1: Int = 10

// Java 
int number1 = 10

 

  • 값을 초기화하지 않은 변수는 컴파일러가 타입을 추론하지 못하기 때문에 에러가 발생한다. 따라서, 초기화 하지 않은 변수를 사용하기 위해선 타입을 지정한다.
  • val의 경우 불변 변수 이기 때문에 값을 대입하는 것이 불가능하지만, 초기화가 되지 않은 val에 대해서 최초 1번 값을 초기화 하는 것이 가능하다. (자바와 동일)
var number1  // 타입 추론 불가
var number1: Int // int로 타입 추론 가능

val number2: Int // int로 타입 추론 가능
number2 = 10 // 가능

 

  • 프리미티브 타입(원시 타입)과 래퍼런스 타입을 구분하지 않고 동일하게 사용한다.
  • 코틀린이 박싱, 언박싱을 내부에서 알아서 처리해서 연산이 필요한 경우 프리미티브 타입으로 변환해 계산한다.
// Java
int number1 = 10;
Integer number2 = 10;

// Kotlin
var number1: Int = 10 
var number2: Int = 10 // 동일한 코드

 

  • 코틀린은 기본적으로 모든 변수가 null을 넣을 수 없도록 설계되어있다. null을 넣을 수 있는 변수를 사용하고 싶다면 변수 : 타입? 을 사용한다.
  • 타입?와 타입은 타입으로서의 역할은 동일하나 다르게 취급된다.
var number1: Long = 10
number1 = null //에러

var number2: Long? = 10
number2 = null // 에러 아님

 

  • 객체를 인스턴스화 하는 경우 new 키워드를 사용하지 않는다.
// Kotlin
var person: Person("zayson")

// Java
Person person = new Person("zayson");

📄 Reference

인프런 : https://www.inflearn.com/course/java-to-kotlin

반응형
저작자표시 비영리 변경금지 (새창열림)
    Zayson
    Zayson
    공부한 내용을 정리하는 공간

    티스토리툴바