스칼라 언어를 사용하려면 인스턴스 변수를 사용하기 전에 인스턴스 변수를 초기화해야합니다. 그러나 Scala는 변수에 기본값을 제공하지 않습니다. 대신 다음과 같이, 당신은 기본값 같은 역할을 와일드 카드 밑줄을 사용하여 수동으로 값을 설정해야스칼라 언어에서 기본값을 사용하는 대신 인스턴스 변수를 초기화해야하는 이유는 무엇입니까?
내가, 내가 알아 ... 내가 클래스 정의의 생성자를 정의 할 수 있습니다 알고var name:String = _
, 이는 파라미터 우리 인스턴스 변수 걸리므 그러나
class Person(var name:String)
아래와 같이 제가 그 ElementType에 필드 나 메소드 인 자바 주석을 사용할 필요가 있기 때문에 스칼라 제가 몸에서 선언 할 필요가 초기화를 강요하지 않는다; 즉, 클래스의 본문에 선언 된 인스턴스 변수 나 메서드에 적용 할 수 있습니다.
질문 : 스칼라 언어가 인스턴스 변수를 초기화해야하는 이유는 무엇입니까? 기본 값을 사용하지 않고 클래스 본문에 선언 된 _ 또는 원하는 값이 무엇이든간에 인스턴스 변수를 초기화해야하는 이유는 무엇입니까?
마틴의 선호도는 내 추측이 될 것입니다 :-) 적어도 그것은 명시 적이며 여분의 2 문자 (공백을 포함한 4 개)는 대단히 위협적이지 않습니다. 일종의 자바 (매우 자세한 언어)가 생략 된 것을 어리석게 보입니다. 또한, "생성자 인수"(실제로 호출되는 것을 몰라 : -)는 초기화되지 않아도됩니다. 객체가 인스턴스화 될 때가 가장 확실합니다. –