관리 메뉴

hyeals study

코틀린 기초(2)-변수 본문

코틀린

코틀린 기초(2)-변수

hyeals 2020. 2. 1. 09:38

※가장 기본적인 예제

Hello,world 출력

위의 예제에서 살펴 볼 수 있는 특징

  1. fun 키워드: 함수를 선언할 때 사용
  2. 파라미터의 이름 뒤에 파라미터의 타입을 지정
  3. 자바와 차이점(1): 함수가 꼭 클래스 안에 있지 않아도 됨
  4. 자바와 차이점(2): System.out.println를 코틀린에서는 println으로 간단하게 사용 가능(코틀린 표준 라이브러리가 표준 자바 라이브러리 함수를 간단하게 사용할 수 있게 Wrapper를 제공해줌)
  5. 명령 끝에 세미콜론(;) 생략 가능

※변수

특징: 코틀린에서 변수의 타입 지정을 생략할 수 있음.

 

[선언 방법]

변수 선언 방법

(1) 변수를 선언할 때 타입을 생략하는 경우: 컴파일러가 알아서 타입 지정해줌

(2) 변수를 선언할 때 타입을 명시하는 경우

(3) 변수를 선언과 동시에 초기화하지 않는 경우에는 반드시 타입을 명시해야함

 

다양한 타입 선언 방법

문자열 및 실수도 위와 같은 방법으로 간단하게 선언과 동시에 초기화가 가능함

 

["val" vs "var"]

변수 선언을 할 때 사용하는 키워드는 'val' 과 'var' 이 두 가지가 있음

 

val : 한 번 초기화 하면 값의 변경이 불가능한 변수(자바로 치면 final 변수)

var : 초기화된 값을 변경할 수 있는 변수

 

참고로 일단 val 키워드를 이용해서 변수를 선언하고 나중에 꼭 필요할 때만 var 키워드로 변경하는 것이 좋음

 

[val 변수를 사용할 때 주의할 점]

 

val 변수는 실행할 때 정확히 한 번만 초기화돼야 함.

 

하지만 조건에 따라 val 값을 다른 여러 값으로 초기화할 수 있음.

 

예를 들면,

val 값 초기화

 위의 코드와 같이 실행될 때 하나의 초기화 명령만 실행됨을 컴파일러가 확인할 수 있다면 val 값을 여러 값으로 초기화할 수 있음.

 

또한 val 참조 자체는 불변이지만 그 참조가 가리키는 객체의 내부 값은 변경 될 수 있음.

 

예를 들면,

val 객체 내부 값 변경

위와 같은 코드가 작성 가능함.

 

[var 변수를 사용할 때 주의할 점]

 

var 키워드를 사용하면 변수의 값을 변경하는 것은 가능함. 그러나 변수의 타입은 고정되어있음.

 

예를 들면,

type mismatch 컴파일 에러

위와 같은 코드는 컴파일이 불가능 함. 

 

컴파일러는 변수를 선언 시점의 초기화 식으로 변수의 타입을 추론함.

 

변수 선언 이후 변수 재대입이 이뤄질 때는 이미 추론한 변수의 타입을 염두에 두고 대입문의 타입을 검사함

 

예시의 상황에서는 컴파일러가 answer변수를 Int 타입으로 염두해두고 있기 때문에 String 타입이 대입된 경우 오류를 발생시킴. (이러한 경우에는 강제 형 변환을 해야함)

 

 

 

본 게시물은 "Kotlin IN ACTION"을 참고함.

 

 

 

 

'코틀린' 카테고리의 다른 글

코틀린 기초(6)- 제어 구조 [enum]  (0) 2020.02.03
코틀린 기초(5)-클래스 & 프로퍼티  (0) 2020.02.02
코틀린 기초(4)-함수  (0) 2020.02.01
코틀린 기초(3)-문자열 템플릿  (0) 2020.02.01
코틀린 기초  (2) 2020.01.31
Comments