我是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,[''],[]}
如何正确检查空状态?
答案 0 :(得分:2)
你可以只对模式匹配
case BAccessToken of
'' ->
%% empty
_ ->
%% not empty
end
还有一件事。 Erlang中的单引号表示原子。通常情况下,您可以使用atom
或false
或not_empty
来创建包含首发情人案例的人。但有时你想使用一些更复杂的原子你可以使用像'This is also atom'
这样的单引号。而''
只是“空原子。
空二进制文件看起来像<<>>
。