F#元組

2018-12-15 11:45 更新

元組是一個逗號分隔的值集合。 這些用于創(chuàng)建特殊數(shù)據(jù)結(jié)構(gòu),將相關(guān)值組合在一起。

例如,(“Zara Ali”,“Hyderabad”,10)是具有兩個字符串值和一個int值的三元組,它具有類型(string * string * int)。

元組可以是相同或不同類型的對,三元組等。

這里提供一些實例 

// Tuple of two integers.
( 4, 5 )

// Triple of strings.
( "one", "two", "three" )

// Tuple of unknown types.
( a, b )

// Tuple that has mixed types.
( "Absolute Classes", 1, 2.0 )

// Tuple of integer expressions.
( a * 4, b + 7)

這個程序有一個函數(shù),它接受四個浮點值的元組,并返回平均值 

let averageFour (a, b, c, d) =
   let sum = a + b + c + d
   sum / 4.0

let avg:float = averageFour (4.0, 5.1, 8.0, 12.0)
printfn "Avg of four numbers: %f" avg

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

Avg of four numbers: 7.275000

訪問單個元組成員

可以使用模式匹配來評估和打印元組的各個成員。

下面的例子說明了這一概念 

let display tuple1 =
   match tuple1 with
   | (a, b, c) -> printfn "Detail Info: %A %A %A" a b c

display ("Zara Ali", "Hyderabad", 10 )

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

Detail Info: "Zara Ali" "Hyderabad" 10

F#有兩個內(nèi)置函數(shù)fstandsnd,它返回2元組中的第一和第二項。

下面的例子說明了這一概念 

printfn "First member: %A" (fst(23, 30))
printfn "Second member: %A" (snd(23, 30))

printfn "First member: %A" (fst("Hello", "World!"))
printfn "Second member: %A" (snd("Hello", "World!"))

let nameTuple = ("Zara", "Ali")

printfn "First Name: %A" (fst nameTuple)
printfn "Second Name: %A" (snd nameTuple)

當(dāng)你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 

First member: 23
Second member: 30
First member: "Hello"
Second member: "World!"
First Name: "Zara"
Second Name: "Ali"
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號