codecamp

Elixir 字符列表

字符列表仅仅是字符的列表:

iex> 'hełło'
[104, 101, 322, 322, 111]
iex> is_list 'hełło'
true
iex> 'hello'
'hello'

可以看出,一个字符列表包含了单引号间的字符的代码点,而非字节(注意如果某个字符超出了ASCII的范围,IEx将只输出其代码点)。所以双引号代表一个字符串(二进制数),单引号代表一个字符列表(列表)。

在实践中,字符列表通常用于与Erlang的接口,因为一些旧的库不接受二进制数作为参数。你可以使用to_string/1to_char_list/1函数来相互转化字符列表和字符串:

iex> to_char_list "hełło"
[104, 101, 322, 322, 111]
iex> to_string 'hełło'
"hełło"
iex> to_string :hello
"hello"
iex> to_string 1
"1"

注意这些函数是多态的。它们不仅能将字符列表转换成字符串,也能将整数,原子等转换成字符串。

Elixir 二进制数(和位串)
Elixir 关键词列表
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Elixir 基本操作符

Elixir 二进制,字符串和字符列表

Elixir 类型规格与行为

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }