加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

什么是Elm 元组

发布时间:2023-04-11 16:28:25 所属栏目:教程 来源:
导读:Elm为我们提供了一个称为元组的数据结构,可用于此目的,有时可能需要存储各种类型的值的集合。

元组表示值的异构集合。

换句话说,元组可以存储不同类型的多个字段。元组存储固定数量的值。当您要从函数返回多
Elm为我们提供了一个称为元组的数据结构,可用于此目的,有时可能需要存储各种类型的值的集合。

元组表示值的异构集合。

换句话说,元组可以存储不同类型的多个字段。元组存储固定数量的值。当您要从函数返回多个不同类型的值时,元组很有用。这些数据结构像Elm 中的其他类型一样是不可变的。

语法
(data1,data2)
一个简单的例子如下所示-

> ("F2er",5,True,"Hyderabad")
("F2er",5,True,"Hyderabad") : ( String, number, Bool, String )
在随后的部分中,我们将学习不同的元组操作。

first
此操作从元组提取第一个值。

语法
Tuple.first tuple_name
> Tuple.first
<function> : ( a1, a2 ) -> a1
示例
> Tuple.first (10,"hello")10 : number
second
所述第二元组操作提取从一个元组中的第二个值。

语法
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 子句访问它们。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章