Az F# 4.7 újdonságai
Az F# 4.7 több fejlesztést is tartalmaz az F# nyelvhez.
Első lépések
Az F# 4.7 minden .NET Core-disztribúcióban és Visual Studio-eszközben elérhető. Ismerkedés az F# -tal további információért.
Nyelvi verzió
Az F# 4.7 fordító lehetővé teszi a hatékony nyelvi verzió beállítását a projektfájl egyik tulajdonságán keresztül:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Beállíthatja a következő értékeket 4.6
: , 4.7
, latest
és preview
. Az alapértelmezett érték latest
.
Ha ezt preview
állítja be, a fordító aktiválja a fordítóban implementált összes F# előzetes verziójú funkciót.
Implicit hozamok
Többé nem kell alkalmaznia a kulcsszót tömbökben yield
, listákban, sorozatokban vagy számítási kifejezésekben, ahol a típus kikövetkeztethető. Az alábbi példában mindkét kifejezés az F# 4.7 előtti összes bejegyzéshez megkövetelte az yield
utasítást:
let s = seq { 1; 2; 3; 4; 5 }
let daysOfWeek includeWeekend =
[
"Monday"
"Tuesday"
"Wednesday"
"Thursday"
"Friday"
if includeWeekend then
"Saturday"
"Sunday"
]
Ha egyetlen yield
kulcsszót vezet be, minden más elemnek is alkalmaznia kell yield
rá.
Az implicit hozamok nem aktiválódnak, ha olyan kifejezésben használják, amely egy sorozat összesimításához is használható yield!
. Ezekben az esetekben továbbra is használnia yield
kell a mai napot.
Helyettesítő karakterek azonosítói
Az osztályokat tartalmazó F#-kódban az önazonosítónak mindig explicitnek kell lennie a tagdeklarációkban. Azokban az esetekben azonban, amikor az önazonosítót soha nem használják, hagyományosan szokás kettős aláhúzást használni a névtelen önazonosítók jelzésére. Mostantól egyetlen aláhúzásjelet is használhat:
type C() =
member _.M() = ()
Ez a hurkokra for
is vonatkozik:
for _ in 1..10 do printfn "Hello!"
Behúzási lazítások
Az F# 4.7 előtt az elsődleges konstruktor és a statikus tagargumentumok behúzási követelményei túlzott behúzást igényelnek. Most már csak egyetlen behúzási hatókört igényelnek:
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: