본문 바로가기

Programming/Android

[번역] 'var' on function parameter is not allowed - Kotlin에서 함수 파라미터로 var을 허용하지 않는 이유

* 코틀린 공식 블로그 사이트에서 발췌 및 번역하였습니다.



Parameters는 Immutable하다.

mutable parameter 지원을 제거하기로 한 이유는 다음과 같다. 가장 주된 이유로는 혼란을 일으키기 때문이다. 우리는 지원하지 않지만 (런타임에서 소모가 크다) 사람들이 파라미터가 참조값으로서 전달된다고 생각했기 때문이다. 또 사람들이 혼란스러워했던 이유는 primary constructors에 있다. 생성자 선언(Constructor declatration)에서의 val이나 var은 function 선언에서의 ‘val’이나 ‘var’과 다르다. (즉, 생성자 선언은 property를 생성한다.) 더불어, 모두 알다시피 파마리터 값을 수정이 가능하게(mutable로) 사용하는 것은 좋은 코드가 아니다. 그래서 함수의 파라미터 앞과 for 반복문의 catch block에서 val과 var을 사용하는 것을 더이상 허용하지 않는다.

 

📎 참조


https://blog.jetbrains.com/kotlin/2013/02/kotlin-m5-1/

 

Kotlin M5.1

There have been enough little improvements since Kotlin M5 so that we are rolling them out as M5.1 today. Some of them are not so little in fact, like enabling the use of Scala libraries, such as A…

blog.jetbrains.com