BIFs是內(nèi)置在Erlang中的函數(shù)。它們通常執(zhí)行在Erlang中無(wú)法編程的任務(wù)。例如,不可能將列表轉(zhuǎn)換為元組,也不可能找到當(dāng)前時(shí)間和日期。為了執(zhí)行這樣的操作,我們稱(chēng)之為BIF。
讓我們舉一個(gè)如何使用BIF的示例-
-module(helloworld). -export([start/0]). start() -> io:fwrite("~p~n",[tuple_to_list({1,2,3})]), io:fwrite("~p~n",[time()]).
關(guān)于上述示例,需要注意以下幾點(diǎn):
在第一個(gè)示例中,我們使用名為tuple_to_list的BIF將一個(gè)tuple轉(zhuǎn)換為一個(gè)list。
在第二個(gè)BIF函數(shù)中,我們使用time 函數(shù)來(lái)輸出系統(tǒng)時(shí)間。
上面程序的輸出如下:
[1,2,3] {10,54,56}
讓我們看一下Erlang中更多可用的BIF函數(shù)。
序號(hào) | BIF函數(shù)和說(shuō)明 |
---|---|
1 | 此方法返回當(dāng)前系統(tǒng)日期。 |
2 | 此方法返回一個(gè)位串中包含的字節(jié)數(shù)。 |
3 | 該方法返回元組中的第N個(gè)元素。 |
4 | 此方法返回特定數(shù)字的浮點(diǎn)值。 |
5 | 該方法將過(guò)程字典作為列表返回。 |
6 | 此方法用于key,value在過(guò)程字典中放置一個(gè)鍵值對(duì)。 |
7 | 該方法用于給出系統(tǒng)中的本地日期和時(shí)間。 |
8 | 返回一個(gè)列表,其中包含有關(guān) Erlang 模擬器動(dòng)態(tài)分配的內(nèi)存的信息。 |
9 | 此方法返回元組{MegaSecs,Secs,MicroSecs},它是自1970年1月1日格林威治標(biāo)準(zhǔn)時(shí)間00:00開(kāi)始經(jīng)過(guò)的時(shí)間。 |
10 | 返回本地節(jié)點(diǎn)上所有端口的列表 |
11 | 返回與本地節(jié)點(diǎn)上當(dāng)前存在的所有進(jìn)程相對(duì)應(yīng)的進(jìn)程標(biāo)識(shí)符的列表。 |
12 | 根據(jù)世界標(biāo)準(zhǔn)時(shí)間(UTC)返回當(dāng)前日期和時(shí)間。 |