Elm 元组
Elm为我们提供了称为的数据结构,可用于此目的,有时可能需要存储各种类型的值的集合。
表示值的异构集合。
换句话说,可以存储不同类型的多个字段。存储固定的值。当您要从返回多个不同类型的值时,很有用。这些数据结构像Elm 中的其他类型一样是不可变的。
(data1,data2)
简单的例子如下所示-
> ("F2er",5,True,"Hyderabad") ("F2er",5,True,"Hyderabad") : ( String, number, Bool, String )
在随后的部分中,我们将学习不同的操作。
此操作从第值。
Tuple.first tuple_name > Tuple.first <function> : ( a1, a2 ) -> a1
> Tuple.first (10,"hello")10 : number
所述第二操作从中的第二个值。
Tuple.second tuple_name > Tuple.second <function> : ( a1, a2 ) -> a2
> Tuple.second (10,"hello")"hello" : String
列表可以存储。如果在列表内使用,请确保它们均具有相同的数据类型并具有相同的参数。
> [("hello",20),("world",30)] [("hello",20),("world",30)] : List ( String, number )
可以返回。另外,可以作为参数传递给。
以下示例定义了fn_checkEven。此接受整数值作为参数并返回。
> fn_checkEven no = \ if no%2 == 0 then \ (True,"The no is Even")\ else \ (False,"No is not even") <function> : Int -> ( Bool, String ) > fn_checkEven 10 (True,"The no is Even") : ( Bool, String ) > fn_checkEven 11 (False,"No is not even") : ( Bool, String ) >
以下将作为参数传递给。
> fn_add (a,b) = \ | a+b <function> : ( number, number ) -> number > fn_add (10,20) 30 : number
fn_add 接受具有2个数值的,并返回它们的总和。
销毁涉及将分解为单个值。要访问具有三个或更多元素的中的单个值,我们使用解构。
,我们将中的每个值分配给不同的变量。使用_可以为将被忽略或跳过的值定义占位符。
> (first,_,_) = (10,20,30) 10 : number > first 10 : number
在此示例中,我们将使用 let..in 块语法进行解构。
let块包含变量,in块包含应求值的表达式和应返回的值。
> t1 = (10,20,30) (10,20,30) : ( number, number1, number2 ) > let \ (a,b,c) = t1 \ in\ a + b +c 60 : number
我们在let子句中声明变量 abc,并使用 in 子句访问它们。