F# 3.0의 주요 변경 내용
이 항목은 3.0 버전에서 Visual Studio 2012 릴리스의 F# 컴파일러와 언어의 주요 변경 사항에 대해 보여 줍니다.
주요 변경 사항 목록
다음 테이블은 F# 3.0의 주요 변경 사항을 나열합니다.
주요 변경 영역 |
설명 |
---|---|
들여쓰기 |
이전 버전의 F# 컴파일러에서 실수로 허용되었던 일부 올바르지 않은 들여쓰기는 현재 버전에서 컴파일 오류를 생성합니다.들여쓰기 규칙에 대한 전체 설명은 코드 서식 지정 지침(F#)를 참조하십시오. |
인용구와 메서드 및 로컬 변수인 구조의 속성 |
이제 해당 구조가 로컬 변수일 때 큰따옴표로 된 구조에서 속성 또는 메서드를 호출하는 것은 오류입니다.F#의 이전 버전에서는 이 동작이 허용되지 않았습니다.
이 요구 사항을 해결하려면 다음 예제처럼 로컬 변수의 복사본을 만듭니다.
|
잘못된 null 값과 같음 |
이전 버전에서는 null 값이 형식의 적절한 값 또는 부적절한 값인지 여부에 관계 없이 = 연산자를 사용하여 비교할 수 있습니다.적절한 null은 형식이 허용하는 null 값이며, 부적절한 null은 형식에 유효한 값이 아닙니다.현재 동작은 부적절한 null을 비교하기 위해 = operator 연산자를 사용하려고 시도할 때 다음 코드에서 보여주는 것처럼 NullReferenceException를 throw하는 것입니다.
|
주석 및 문자열 |
이전 버전에서는 3중 따옴표 문자열("""를 사용하는 문자열)에서 닫는 주석 토큰 *)은 문자열의 일부로 구문 분석됩니다..현재 버전에서 해당 토큰을 닫는 주석 문자로 구문 분석합니다.따라서, 이전에 수락한 다음 코드를 현재 버전에서 오류를 생성 합니다.
자세한 내용은 문자열(F#)을 참조하십시오. |
getter 및 setter 형식이 다른 속성입니다 |
이전 버전의 F#에서 컴파일러는 getter 및 setter 메서드가 일치하지 않는 형식(예를 들어, int 형식의 getter/string 형식의 setter)을 사용할 수 없었습니다.F# 3.0에서 컴파일러는 이런 선언을 오류로 보고합니다. |