티스토리 뷰

변수 


변수 선언 키워드

val (value) 
  • 읽기 전용(readOnly)로 자바의  final  키워드가 붙은 변수
  • 자바스크립트의  const  와 비교해 생각하면 쉽다.
  • val은 value( 값 ) 라는 의미를 가진다.

 

 

var (variable) 
  • 가변, 즉 변경 가능한 변수를 의미한다.
  • 값을 변경하는 것은 가능 하지만,  동적타입 언어(ex. JavaScript, Python )처럼 한 번 초기화된 타입이 아닌 타입으로 변경하는 것은 불가능하다.
  • 자바스크립트의  let  과 비교해 생각하면 쉽다.
  • var는 variable( 변수 ) 라는 의미를 가진다.

 

 

자바와 다른 특징

  1. Top-Level( 함수 혹은 클래스 밖 ) 에서 선언 가능.
  2. Type을 지정 하지 않아도 타입 추론이 된다. ( JDK 10 에서 추가된 var를 이용하면 자바에서도 가능 )
  3. 지연 할당이 가능하다. 즉, 초기화 하지 않은 상태로 변수 선언이 가능하다. 하지만 사용 전에는 초기화 해주지 않으면 컴파일 에러가 발생한다.

 

 

 

함수 


코틀린의 다양한 함수 선언 방법

1. 몸통이 있는 함수 선언
  •  fun  키워드를 사용한 몸통이 있는 함수.
  •  fun [함수명](Argument:Type...):[Type] {...}  의 형태를 가진다.

 

 

2. 표현식을 사용한 함수 선언 
  • 반환 타입의 타입 추론이 가능하다.  (몸통이 있는 함수는 타입추론이 불가능)

 

 

특징

반환 타입이 없는 경우 Unit Type이 반환된다. ( 자바의 Void 타입으로 이해할 수 있다. )

 

 

 

디폴트 파라미터 (default parameter)를 제공할 수 있다.
  • 파라미터의 기본 값을 설정할 수 있다.

 

 

 

네임드 아규먼트 (Named Argument) 사용
  • 기존 자바에서는, 파라미터의 순서가 중요했다. 코틀린의 경우 이러한 파라미터 이름을 직접 지정하여 순서와 상관 없이 사용할 수 있도록 하여 가독성을 높였다.

 

 

 

Top-Level에 선언 가능
  • 기존 자바의 메서드는 항상 클래스 내부에 위치 해야했다. 이와달리 코틀린은 클래스 밖에 (Top-Level)에 함수가 위치할 수 있다.

 

함수 명에 띄어쓰기 혹은 예약어 사용 가능
  • 벡틱(`) 을 활용하면 함수명에 띄어쓰기 혹은 예약어를 포함할 수 있는데, 테스트 코드의 함수명으로 사용하면 가독성을 높일 수 있다.

 

댓글