erlang的数据类型 (2)

简介:  继续前面说列表。 列表里面的元素,第一个成为head,head之后的都叫tail。用erlang的内置方法看一下: > hd([1,2,3,4]). 1 > tl([1,2,3,4]). [2,3,4]  为什么要这样呢?因为列表的指针是在头部的,对头部进行操作是最快捷和高效的。

 继续前面说列表。

列表里面的元素,第一个成为head,head之后的都叫tail。用erlang的内置方法看一下:

> hd([1,2,3,4]).
1
> tl([1,2,3,4]).
[2,3,4]

 为什么要这样呢?因为列表的指针是在头部的,对头部进行操作是最快捷和高效的。

 

使用竖线| 能快速区分头部和尾部:

> [H|T]=[1,2,3,4].
[1,2,3,4]
> H.
1

 竖线运算符还能把两个列表连在一起:

> L = [3,3,4].
[3,3,4]
> LL = [1,1,1|L].
[1,1,1,3,3,4]

 不过竖线后面必须是一个列表:

> [66,77|88].
[66,77|88]
> [66,77|[88]].
"BMX"

 

 

六,列表推导

和python一样,erlang也有列表推导式List comprehensives。

这个语法比较简单,我们看几个例子:

> [2*N || N <- [1,2,3,4]].
[2,4,6,8]
> [X+Y || X <- [1,2], Y <- [2,3]].
[3,4,4,5]
> Weather = [{toronto, rain}, {montreal, storms}, {london, fog},  {paris, sun}, {boston, fog}, {vancouver, snow}].
[{toronto,rain},
 {montreal,storms},
 {london,fog},
 {paris,sun},
 {boston,fog},
 {vancouver,snow}]
> FoggyPlaces = [X || {X, fog} <- Weather].
[london,boston]

 

七,二进制

erlang对二进制的操作也提供了一些方法。

比特是由两个小于号和两个大于号包装的<<>>,每个元素包含一个冒号,元素间用逗号分开:

> Color = 16#F09A29.
15768105
> Pixel = <<Color:24>>.
<<240,154,41>>

 比特也满足模式匹配:

> Pixels = <<213,45,132,64,76,32,76,0,0,234,32,15>>.
<<213,45,132,64,76,32,76,0,0,234,32,15>>
> <<Pix1,Pix2,Pix3,Pix4>> = Pixels.
** exception error: no match of right hand side value <<213,45,132,64,76,32,76,0,0,234,32,15>>
> <<Pix1:24, Pix2:24, Pix3:24, Pix4:24>> = Pixels.
<<213,45,132,64,76,32,76,0,0,234,32,15>>
> <<R:8, G:8, B:8>> = <<Pix1:24>>.
<<213,45,132>>
> R.
213

这里暂不介绍二进制的左移和右移,以及位操作。 

 

八,二进制推导

二进制语法也有推导式,我们简单看几个例子:

> [ X || <<X>> <= <<1,2,3,4,5>>, X rem 2 == 0].     
[2,4]
> Pixels = <<213,45,132,64,76,32,76,0,0,234,32,15>>.
<<213,45,132,64,76,32,76,0,0,234,32,15>>
> RGB = [ {R,G,B} || <<R:8,G:8,B:8>> <= Pixels ].
[{213,45,132},{64,76,32},{76,0,0},{234,32,15}]

 

 

OK,就先这些吧。

目录
相关文章
|
9月前
|
存储 索引 Python
Python中可变数据类型和不可变数据类型
【2月更文挑战第18天】
243 8
|
9月前
|
Perl
|
9月前
|
存储 索引 Python
python 数据类型之集合
python 数据类型之集合
|
9月前
|
Perl
|
9月前
|
Perl
|
9月前
|
Perl
|
9月前
|
索引 Perl
|
索引 Python
6-6、Python 数据类型-集合
学习Python 数据类型-集合。
107 0
|
存储 PHP 索引
你对 PHP 数据类型或者其他编程语言的数据类型了解多少呢
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。 学php一定要先把八种数据类型学明白了,因为对于新手来说就是对数据的增删改查,先要弄明白自己学的编程语言中都有哪些数据类型,今天就把自己学到的数据类型以总结的方式跟大家分享一下,希望对大家有用。 PHP一共支持八种数据类型,包括4种标量类型,即boolean(布尔型),integer(整形),float/double(浮点型)和string(字符串类型);两种复合类型,即array(数组),和object(对象);两种特殊类型
116 0

热门文章

最新文章