سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. Tuples مجموعه مقادیر هستند که به وسیله کاما از هم جدا می شوند که قبلا به آن پرداختیم. Records در #F هم با یک سری تفاوت هایی مانند Tuples ها هستند.در این قسمت ایجاد یک Records در #F رو بررسی می نماییم.
یک Records شبیه یک tuple است، با این حال دارای فیلدهای نامگذاری شده است. مثلا،
1 2 3 | type website = { title : string; url : string } |
Records به عنوان یک نوع استفاده از type keyword تعریف شده است، و فیلد های Records به عنوان یک لیست جدا شده با سیمیکالن تعریف شده است.
سینتکس تعریف یک رکورد را در زیر داریم.
1 2 | type recordName = { [ fieldName : dataType ] + } |
شما می توانید یک 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;} |
در این قسمت، دیدیم که Records در #F هم با یک سری تفاوت هایی مانند Tuples ها هستند و همچنین ایجاد یک Records در #F رو مورد بررسی قرار دادیم.