首页 > 其他分享 >无涯教程-F# - 记录(Records)

无涯教程-F# - 记录(Records)

时间:2023-11-28 18:32:22浏览次数:38  
标签:教程 Title Url com 无涯 Records let www learnfk

记录(Records)类似于元组,但是它包含命名字段。例如,

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

定义记录

使用 type 关键字将记录定义为类型,并将记录的字段定义为以分号分隔的列表。

定义记录的语法是-

type recordName =
   { [ fieldName : dataType ] + }

创建记录

您可以通过指定记录的字段来创建记录,例如,让无涯教程创建一个名为 homepage 的网站记录-

let homepage={ Title="LearnFk"; Url="www.learnfk.com" }

例子1

该程序定义了一个名为网站的记录类型。然后,它创建一些类型为website的记录并打印记录。

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

(* creating some records *)
let homepage = { Title = "LearnFk"; Url = "www.learnfk.com" }
let cpage = { Title = "Learn C"; Url = "www.learnfk.com/cprogramming/index.htm" }
let fsharppage = { Title = "Learn F#"; Url = "www.learnfk.com/fsharp/index.htm" }
let csharppage = { Title = "Learn C#"; Url = "www.learnfk.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: "LearnFk"
       URL: "www.learnfk.com"
C Page: Title: "Learn C"
      URL: "www.learnfk.com/cprogramming/index.htm"
F# Page: Title: "Learn F#"
      URL: "www.learnfk.com/fsharp/index.htm"
C# Page: Title: "Learn C#"
      URL: "www.learnfk.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;}

参考链接

https://www.learnfk.com/fsharp/fsharp-records.html

标签:教程,Title,Url,com,无涯,Records,let,www,learnfk
From: https://blog.51cto.com/u_14033984/8604383

相关文章

  • mysql主从同步详细教程
    mysql主从同步详细教程 1、安装好主数据库和从数据库,这个大家肯定都会,如果不是很明白,可以参考我前面的安装教程。例子:假如我需要同步test1、test2数据库  系统:centos7主库主机:192.168.1.252 从库主机:192.168.1.251  端口都是:33062、主数据......
  • 无涯教程-F# - 数据类型
    F#中的数据类型可以分类如下-整数类型浮点类型文本类型其他类型整体数据类型下表提供了F#的整数数据类型,这些基本上是整数数据类型。F#TypeSizeRangeExampleRemarkssbyte1byte-128to12742y-11y8-bitsignedintegerbyte1byte0to25542uy200uy8-......
  • 无涯教程-MySQL String Functions函数
    Sr.No.Name&Description1ASCII()返回最左边字符的数值2BIN()返回参数的字符串表示形式3BIT_LENGTH()返回参数的长度(以位为单位)4CHAR_LENGTH()返回参数中的字符数5CHAR()返回传递的每个整数的字符6CHARACTER_LENGTH()CHAR_LENGTH()的同义词7......
  • 无涯教程-MySQL Numeric Functions函数
    MySQL数值函数主要用于数值运算和/或数学计算。下表详细介绍了MySQL实现中可用的数值函数。Sr.No.Name&Description1ABS()返回数值表达式的绝对值。2ACOS()返回数值表达式的反余弦值。如果该值不在-1到1之间,则返回NULL。3ASIN()返回数字表达式的反正弦值。如......
  • SQL Server2022安装图文教程
      一:下载 本次安装测试系统环境:    1、官网下载链接https://www.microsoft.com/zh-cn/sql-server/sql-server-downloadsSQLServer下载|Microsoft    2、在下载目录中找到下面这个小的安装包SQL2022-SSEI-Dev.exe,运行开始下载SQLserver;   二:安装SqlServer2022......
  • 无涯教程-MySQL AVG Function函数
    MySQLAVG函数用于查找各种记录中某个字段的平均值。要了解AVG函数,请考虑一个employee_tbl表,该表具有以下记录-mysql>SELECT*FROMemployee_tbl;+------+------+------------+--------------------+|id|name|work_date|daily_typing_pages|+------+-......
  • 无涯教程-MySQL MIN Function函数
    MySQLMIN函数用于在记录集中找出最小值的记录。要了解MIN函数,请考虑一个employee_tbl表,该表具有以下记录-mysql>SELECT*FROMemployee_tbl;+------+------+------------+--------------------+|id|name|work_date|daily_typing_pages|+------+-----......
  • 无涯教程-MySQL IN Clause函数
    您可以使用IN子句替换许多OR条件要了解IN子句,请考虑一个employee_tbl表,该表具有以下记录-mysql>SELECT*FROMemployee_tbl;+------+------+------------+--------------------+|id|name|work_date|daily_typing_pages|+------+------+------------......
  • Navicat 破解版安装教程_永久激活,亲测好用
    Navicat16破解版安装教程_激活码分享今天给大家分享一波Navicat16的破解版安装教程,通过激活工具一键生成激活码,输入Navicat即可完成激活,无图无真相,下面是我破解成功的截图:Navicat16破解激活成功截图废话少说,下面演示如何永久激活Navicat16。一、Navicat简介Nav......
  • 无涯教程-PERL函数
    本教程将教您如何在Perl脚本中访问数据库。从Perl5开始,使用DBI模块编写数据库应用程序变得非常容易。DBI代表Perl的数据库独立接口,这意味着DBI在Perl代码和基础数据库之间提供了一个抽象层,使您可以真正轻松地切换数据库实现。DBI是Perl编程语言的数据库访问模块。它提供......