왜 스칼라는 선언 할 수 없지만 정의되지 않은 변수는 자바가 할 수있는 반면에 정의되지 않았습니까?

Core_Dumped

이것은 다음을 컴파일합니다.

public class SandboxJava { //Java
  public Integer cards;
}

그러나 이것은 그렇지 않습니다.

class SandboxScala{
  var cards:Int //Throws saying the class must be abstract to have undefined variables
}

이제 vars를 초기화해야 한다는 사실을 알고 있지만 스칼라가 처음에 정의되지 않은 변수를 갖는 기능이없는 이유는 무엇입니까?

케빈 크룸 비데

Java에서 명시 적으로 초기화되지 않은 필드는 여전히 초기화됩니다. 참조는로 자동으로 초기화 null되고 스칼라 값은로 초기화 됩니다 0. 명시적일 필요가 없다는 사실은 일종의 속기 또는 구문 설탕 일뿐입니다.

지역 변수는 약간 다릅니다. 자동으로 초기화되지 않으며 초기화없이 선언 할 수 있지만 초기화하기 전에 액세스하는 것은 컴파일러 오류입니다.

public class Foo {
    public static void main(String[] args) {
        int x;
        if(x == 0) {
            System.out.println("Hello.");
        }
    }
}

결과

Foo.java:4: error: variable x might not have been initialized
        if(x == 0) {
           ^

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관