这是我采取的元组
let person = ("Prathap Reddy SV", "Male", 16)
let name = fst person
or
let person = ("Prathap", "Male", 16)
let name = fst person
Run Code Online (Sandbox Code Playgroud)
当我编译这个显示下面的输出
> let person = ("Prathap Reddy SV", "Male", 16)
let name = fst person
let name = fst person
---------------^^^^^^
stdin(152,16): error FS0001: Type mismatch. Expecting a
string * string
but given a
string * string * int
The tuples have differing lengths of 2 and 3
Run Code Online (Sandbox Code Playgroud)
但是,当我给两个字符串值的元组时,它工作正常.
签名fst
是('a * 'b -> 'a)
,这就是你收到给定错误的原因.
该函数fst
需要两个元素的元组,但是你提供了三个元素的元组.对于三个字符串的元组,错误将是相同的:fst ("a","b","c")
将产生
stdin(1,6): error FS0001: Type mismatch. Expecting a
'a * 'b
but given a
'a * 'b * 'c
The tuples have differing lengths of 2 and 3
Run Code Online (Sandbox Code Playgroud)