Erlang检查空字符串

时间:2014-10-12 20:39:18

标签: erlang mnesia

我是Erlang开发的新手。我试图从mnesia表中读取AccessToken的值(存储在' users'表中)。

在我的代码中我完成了:

BUser = boss_db:find(users, [{email, 'equals', MyEmail}]),
[{_,_,BEmail,BName,BPassword,_,BAccessToken}] = BUser,
io:format("User Details ~n~p~n", [BUser]),
io:format("Access Token ~n~p~n", [BAccessToken]),
.
.

我明白了:

User Details 
[{users,"users-1","mymail@someemail.org","Some Name","somepassword",'',''}]

最后一个字段是AccessToken,它打印为:

Access Token 
''

如果AccessToken值非空,我将执行某些操作。

如何检查AccessToken是否为空?

我试过了:

AccessTokenLength = length(BAccessToken)
if AccessTokenLength > 0 ->
.
.

但是我收到以下错误:

Error in controller error badarg [{erlang,length,[''],[]}

我也尝试过:

case binary_to_list(BAccessToken) =/= [] of
true->
false->

但是我收到以下错误:

Error in controller error badarg [{erlang,binary_to_list,[''],[]}

如何正确检查空状态?

1 个答案:

答案 0 :(得分:2)

你可以只对模式匹配

case BAccessToken of
     '' ->
         %% empty 
     _ ->
         %% not empty
end

还有一件事。 Erlang中的单引号表示原子。通常情况下,您可以使用atomfalsenot_empty来创建包含首发情人案例的人。但有时你想使用一些更复杂的原子你可以使用像'This is also atom'这样的单引号。而''只是“空原子。

空二进制文件看起来像<<>>