F# 4.7의 새로운 기능
F# 4.7은 F# 언어에 여러 개선 사항을 추가합니다.
시작하기
F# 4.7은 모든 .NET Core 배포판 및 Visual Studio 도구에서 사용할 수 있습니다. F# 을 사용하여 자세히 알아보세요.
언어 버전
F# 4.7 컴파일러는 프로젝트 파일의 속성을 통해 유효한 언어 버전을 설정하는 기능을 소개합니다.
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
값 4.6
, 4.7
, latest
및 preview
.로 설정할 수 있습니다. 기본값은 latest
입니다.
이 기능을 preview
설정하면 컴파일러가 컴파일러에서 구현된 모든 F# 미리 보기 기능을 활성화합니다.
암시적 수율
더 이상 형식을 유추할 수 있는 배열, 목록, 시퀀스 또는 계산 식에 키워드(keyword) 적용 yield
할 필요가 없습니다. 다음 예제에서 두 식 모두 F# 4.7 이전의 각 항목에 대한 문이 필요 yield
했습니다.
let s = seq { 1; 2; 3; 4; 5 }
let daysOfWeek includeWeekend =
[
"Monday"
"Tuesday"
"Wednesday"
"Thursday"
"Friday"
if includeWeekend then
"Saturday"
"Sunday"
]
단일 yield
키워드(keyword) 도입하는 경우 다른 모든 항목도 해당 항목에 적용해야 yield
합니다.
암시적 수율도 시퀀스 평면화와 같은 작업을 수행하는 데 사용하는 식에서 사용되는 yield!
경우 활성화되지 않습니다. 이러한 경우 오늘도 계속 사용해야 yield
합니다.
Wild카드 식별자
클래스와 관련된 F# 코드에서 자체 식별자는 멤버 선언에서 항상 명시적이어야 합니다. 그러나 자체 식별자를 사용하지 않는 경우 일반적으로 이중 밑줄을 사용하여 이름 없는 자체 식별자를 나타내는 것이 규칙이었습니다. 이제 단일 밑줄을 사용할 수 있습니다.
type C() =
member _.M() = ()
루프에도 for
적용됩니다.
for _ in 1..10 do printfn "Hello!"
들여쓰기 이완
F# 4.7 이전에는 기본 생성자 및 정적 멤버 인수에 대한 들여쓰기 요구 사항에 과도한 들여쓰기가 필요했습니다. 이제 단일 들여쓰기 범위만 필요합니다.
type OffsideCheck(a:int,
b:int, c:int,
d:int) = class end
type C() =
static member M(a:int,
b:int, c:int,
d:int) = 1
.NET