F 入門 十二 Tuple 元組

2021-06-04 16:20:10 字數 1887 閱讀 3935

元組是f#中特有的一種資料型別,一種非常方便的資料型別,型別為system.tuple<_>。

它是一些值的組合,通過逗號來分隔每個元素,元素可以是任何的資料型別。

元組和鍊錶的區別:

鍊錶:元素的個數是可變的,但元素必須是相同的資料型別。

元組:元素的個數是固定的,元素的型別可以是不同的資料型別。

使用元組的乙個好處就是,如果用元組來作為函式的返回值進行返回,就可以很方便地從乙個函式中返回多個值。

元組的表示方法:

(元素1,元素2,…,元素n)

下面是一些示例:

> let dinner = ("green eggs", "ham");; //兩個字串組成的元組

val dinner : string * string = ("green eggs", "ham")

> let zeros = (0, 0l, 0i, 0.0);; //各種數字型別組成的元組,分別對應下面的型別

val zeros: int * int64 * system.numerics.biginteger * float = (0, 0l, 0, 0.0)

元組的資料型別是各元素的資料型別之間用*鏈結起來所構成的新的資料型別。

元組也可以巢狀元組:

> let nested = (1, (2.0, 3m), (4l, "5", '6'));; //乙個元組中巢狀了兩個元組

val nested : int * (float * decimal) * (int64 * string * char) =

(1, (2.0, 3m), (4l, "5", '6'))

使用元組中的元素的時候,第乙個元素叫fst,第二個元素叫snd,使用第三個以上的元素時用模式匹配。

> let nametuple = ("john", "smith");;

val nametuple : string * string = ("john", "smith")

>fstnametuple;;

val it :string = "john"

>sndnametuple;;

val it :string = "smith"

> let snacks = ("soda", "cookies","candy");; //含有三個以上元素的元組

val snacks : string * string * string = ("soda", "cookies","candy")

> let x, y, z = snacks;; //用多個變數來匹配各個元素的值

val z :string = "candy"

val y :string = "cookies"

val x :string = "soda"

> x;;

val it :string = "soda"

元組作為引數傳遞給函式,注意跟普通部分函式的區別:

> let add x y = x + y;; //部分函式,顧名思義就是可以拆分的函式

//它可以被拆分使用,提高**使用率,比如碰到每個操作都有某個相同引數時:

//如計算每個元素加一後的值

//let  fun1 = add 1

//let  fun2 y = fun1 y

val add :int -> int -> int

> let tupledadd(x, y) = x + y;;

val tupledadd : int * int -> int

> add3 7;;

val it :int = 10

>tupledadd(3, 7);;

val it :int = 10

python入門 元組tuple 三

增 元組格式是寫在括號裡,注意與列表 寫在中括號裡 的區別 tup1 math beijing 1997,2000 tup2 1,2,3,4,5 用逗號隔開且等號左邊只有乙個變數時,編譯器會認為這是乙個tuple,不推薦這種寫法 tup3 a b c d 建立空元組 tup1 元組中只包含乙個元素時...

列表 元組(tuple)

1.建立和訪問元組 temp 1,2,3,4,5,6 temp 1 2 temp 5 6,temp 2 3,4,5,6 temp2 temp 1 temp2 2,3,4,5,6 元組的訪問同列表一樣 2.元組不能被修改 temp 1 9 traceback most recent call last...

python入門系列7 tuple 元組

python 作為乙個發展中的語言,也提供了其他的一些資料型別。tuple也是 python 中乙個標準的序列型別。他的一些操作和str和list是通用的,因為他們都是一種序列 sequence data type 支援索引 切片 連線,支援使用內建len 來獲取tuple中元素的個數。另外tupl...