F #-레코드
ㅏ record튜플과 비슷하지만 명명 된 필드가 포함되어 있습니다. 예를 들면
type website =
{ title : string;
url : string }
기록 정의
레코드는 다음을 사용하여 유형으로 정의됩니다. type 키워드 및 레코드 필드는 세미콜론으로 구분 된 목록으로 정의됩니다.
레코드를 정의하는 구문은 다음과 같습니다.
type recordName =
{ [ fieldName : dataType ] + }
기록 생성
레코드의 필드를 지정하여 레코드를 만들 수 있습니다. 예를 들어, 우리가 만들 수있는 웹 사이트의 기록이라는 홈페이지를 -
let homepage = { Title = "TutorialsPoint"; Url = "www.tutorialspoint.com" }
다음 예는 개념을 설명합니다.
예 1
이 프로그램은 website라는 레코드 유형을 정의합니다. 그런 다음 웹 사이트 유형의 일부 레코드를 만들고 레코드를 인쇄합니다.
(* 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
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
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"
예 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()
프로그램을 컴파일하고 실행하면 다음과 같은 출력이 생성됩니다.
Before Registration: : {Name = "Zara";
ID = 10;
RegistrationText = null;
IsRegistered = false;}
After Registration: : {Name = "Zara";
ID = 10;
RegistrationText = "Registered";
IsRegistered = true;}