Fsharp Records Fsharp Records Fsharp Records
Records در #F
یک Records شبیه یک tuple است، با این حال دارای فیلدهای نامگذاری شده است. مثلا،
1 2 3 | type website = { title : string; url : string } |
تعریف Records در #F
Records به عنوان یک نوع استفاده از type keyword تعریف شده است، و فیلد های Records به عنوان یک لیست جدا شده با سیمیکالن تعریف شده است.
سینتکس تعریف یک رکورد را در زیر داریم.
1 2 | type recordName = { [ fieldName : dataType ] + } |
ایجاد یک Records در #F
شما می توانید یک Records را با مشخص کردن فیلدهای Records ایجاد کنید. به عنوان مثال، اجازه دهید یک رکورد وب سایت به نام homepage ایجاد کنیم.
1 | let homepage = { Title = "TutorialsPoint"; Url = "www.tutorialspoint.com" } |
مثال های زیر مفاهیم را توضیح می دهند .
مثال
این برنامه یک نوع Records را به نام website تعریف می کند. پس از آن برخی از Records نوع وب سایت را ایجاد می کند و Records را چاپ می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | (* 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 |
خروجی
1 2 3 4 5 6 7 8 | 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" |
مثال
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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() |
خروجی
1 2 3 4 5 6 7 8 | Before Registration: : {Name = "Zara"; ID = 10; RegistrationText = null; IsRegistered = false;} After Registration: : {Name = "Zara"; ID = 10; RegistrationText = "Registered"; IsRegistered = true;} |