F # - Aufzeichnungen

EIN recordähnelt einem Tupel, enthält jedoch benannte Felder. Zum Beispiel,

type website =
   { title : string;
     url : string }

Datensatz definieren

Ein Datensatz wird als Typ mit dem definiert type Schlüsselwort und die Felder des Datensatzes werden als durch Semikolons getrennte Liste definiert.

Die Syntax zum Definieren eines Datensatzes lautet -

type recordName =
   { [ fieldName : dataType ] + }

Datensatz erstellen

Sie können einen Datensatz erstellen, indem Sie die Felder des Datensatzes angeben. Lassen Sie uns zum Beispiel einen Website- Datensatz mit dem Namen homepage erstellen -

let homepage = { Title = "TutorialsPoint"; Url = "www.tutorialspoint.com" }

Die folgenden Beispiele erläutern die Konzepte -

Beispiel 1

Dieses Programm definiert einen Datensatztyp mit dem Namen website. Anschließend werden einige Datensätze vom Typ Website erstellt und die Datensätze gedruckt.

(* defining a record type named website *)
type website =
   { Title : string;
      Url : string }

(* creating some records *)
let homepage = { Title = "TutorialsPoint"; Url = "www.tutorialspoint.com" }
let cpage = { Title = "Learn C"; Url = "www.tutorialspoint.com/cprogramming/index.htm" }
let fsharppage = { Title = "Learn F#"; Url = "www.tutorialspoint.com/fsharp/index.htm" }
let csharppage = { Title = "Learn C#"; Url = "www.tutorialspoint.com/csharp/index.htm" }

(*printing records *)
(printfn "Home Page: Title: %A \n \t URL: %A") homepage.Title homepage.Url
(printfn "C Page: Title: %A \n \t URL: %A") cpage.Title cpage.Url
(printfn "F# Page: Title: %A \n \t URL: %A") fsharppage.Title fsharppage.Url
(printfn "C# Page: Title: %A \n \t URL: %A") csharppage.Title csharppage.Url

Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:

Home Page: Title: "TutorialsPoint"
       URL: "www.tutorialspoint.com"
C Page: Title: "Learn C"
      URL: "www.tutorialspoint.com/cprogramming/index.htm"
F# Page: Title: "Learn F#"
      URL: "www.tutorialspoint.com/fsharp/index.htm"
C# Page: Title: "Learn C#"
      URL: "www.tutorialspoint.com/csharp/index.htm"

Beispiel 2

type student =
   { Name : string;
      ID : int;
      RegistrationText : string;
      IsRegistered : bool }

let getStudent name id =
   { Name = name; ID = id; RegistrationText = null; IsRegistered = false }

let registerStudent st =
   { st with
      RegistrationText = "Registered";
      IsRegistered = true }

let printStudent msg st =
   printfn "%s: %A" msg st

let main() =
   let preRegisteredStudent = getStudent "Zara" 10
   let postRegisteredStudent = registerStudent preRegisteredStudent

   printStudent "Before Registration: " preRegisteredStudent
   printStudent "After Registration: " postRegisteredStudent

main()

Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:

Before Registration: : {Name = "Zara";
   ID = 10;
   RegistrationText = null;
   IsRegistered = false;}
After Registration: : {Name = "Zara";
   ID = 10;
   RegistrationText = "Registered";
   IsRegistered = true;}