前面已介紹過了列表、元組或陣列這些資料結構,除此之外,f#還有記錄這種資料結構。記錄表示幾個值的並列排放,具有每一種資料前加上名稱的這一特性。
雖然相當於c語言中的結構體,但是在f#中另外有方法單獨描述c語言中的結構體,關於這個請在「物件導向「一節中詳細解釋。
基本的記錄的寫法如下所示
記錄的定義
type 型別名 =
記錄的值的寫入
例如,以下為定義具有商品名和**欄位的juice記錄。
記錄型別的定義
type juice = ;;
這個型別的資料的定義如下所示。
記錄型別的值
let my = ;;let dp = ;;
另外,可以使用現有資料定義新的資料。
寫法如下所示
利用現有記錄生成新的記錄
示例如下
利用現有記錄生成記錄
let ab = ;;
使用記錄型別的變數名.欄位名從記錄中讀取值。
從記錄中讀取值
> my.name;;val it : string = "mellowyellow"
> ab.price;;
val it : int = 110
關於記錄有必須注意的地方,請看如下示例。
現有記錄與新的相同欄位名的記錄
type goods = ;;let my_oyatu = ;;
這個goods記錄與剛才定義的juice型別有著相同欄位名。這時,my_oyatu不是juice型別,而變成了goods型別。也就是說,新定義的記錄的欄位名,與現有的記錄並不存在衝突。
如果考慮到這一點,使用記錄型別進行大規模開發就不困難了。如果意識到相同欄位名的記錄之間並不存在衝突,就可以大量使用記錄了。
記錄型別的值也是,基本上一旦定義好之後,就不能被改變了。但是加上mutable關鍵字之後,就可以改變值。這時,使用<-來改變值。
mutable記錄型別
type human = ;;
let nobita = ;;
let time_furosiki (x:human) = x.age <- x.age + 10;;
time_furosiki nobita;;
print_int nobita.age;;
這裡我們定義了乙個名字(name)不可變,年齡(age)可變的記錄型別-人(human)。並用「人」來定義nobita並賦值。然後定義time_furosiki函式將年齡加上10歲並返回,然後呼叫time_furosiki函式修改nobita的年齡,最後顯示nobita的年齡。
關於常州藍博紡織機械****的產品被常州藍博節能裝置****非法假冒的宣告
F 入門 第二章 F 基礎 第十五節 記錄
前面已介紹過了列表 元組或陣列這些資料結構,除此之外,f 還有記錄這種資料結構。記錄表示幾個值的並列排放,具有每一種資料型別前加上名稱的這一特性。雖然相當於c語言中的結構體,但是在f 中另外有方法單獨描述c語言中的結構體,關於這個請在 物件導向 一節中詳細解釋。基本的記錄的寫法如下所示 記錄的定義 ...
F 入門 第二章 F 基礎 第十三節 元組
元組是一些值的組合。元組中的值可以是任何資料型別。在list中,元素的個數是可變的,list內的元素必須是相同資料型別。在元組中,元素的個數是固定的,元組內的元素可以不是相同資料型別。使用元組的好處之一在於,可以將元組作為函式的返回值進行返回,從而可以方便地從乙個函式中返回多個值。元組的寫法為在 中...
F 入門 第二章 F 基礎 第十二節 列表
列表是資料的集合。f 的列表是線性列表的一種,單方向列表。單方向列表是基本的資料結構之一,一種攜帶指向下乙個元素的指標的資料結構。列表中的元素必須是相同資料型別。完全沒有元素的列表叫空列表,用來表示。另外,列表中的元素用 來分隔。列表 val it a list 1 val it int list ...