W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在上面的所有例子中,我們都使用二進制數(shù)來寫入文件.在"二進制數(shù),字符串和字符列表"那一章中,我們提到了字符串僅僅是字節(jié)而字符列表是代碼點組成的列表.
IO
和File
模塊中函數(shù)允許將列表作為參數(shù).而且,他們也支持由列表,整數(shù)和二進制數(shù)混合而成的列表:
iex> IO.puts 'hello world'
hello world
:ok
iex> IO.puts ['hello', ?\s, "world"]
hello world
:ok
然而,需要注意的是,一個列表有可能是一串字節(jié)或者一串字符,而這取決于IO設備的編碼.如果文件打開時沒有指定編碼,那么就是以生模式打開,而且必須使用IO
模塊中以bin*
開頭的函數(shù).這些函數(shù)需要一個iodata
作為參數(shù);它們需要一個代表字節(jié)和二進制數(shù)的整數(shù)列表.
另一方面,能夠使用IO
模塊中的其它函數(shù)處理:stdio
和以:utf8
編碼打開的文件.這些函數(shù)需要一個char_data
作為參數(shù),也就是一個字符或字符串的列表.
如果你想把一個列表傳遞給這些函數(shù),你唯一要關心的就是這些微妙的差別.二進制數(shù)已經(jīng)由字節(jié)來表示,因此,它們的屬性是"生的".
關于IO設備和IO相關函數(shù)的介紹到此結束.我們已經(jīng)學習了四個Elixir模塊--IO
,File
,Path
和StringIO
,也學習了虛擬機是如何使用進程來從底層支持IO機制的,以及在IO操作中如何使用chardata
和iodata
.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: