Van*_*Huy 25 elixir phoenix-framework
我的意思是如果字符串为空或仅包含空格,则该字符串为空.例如""," "并且"\n"都是空白.
在Rails中,我们有.blank?方法.
Elixir(或凤凰框架)中有类似的东西吗?
小智 26
String.trim/1似乎从Elixir 1.3.0开始.
strip仍然有效,但它在1.3.0版本中被软推荐使用,并且未在http://elixir-lang.org/docs/stable/elixir/String.html#functions的文档中列出.
Gaz*_*ler 15
有String.strip/1可以转换""你可以比较的3个例子.
iex(4)> String.strip("\n") == ""
true
iex(5)> String.strip("") == ""
true
iex(6)> String.strip(" ") == ""
true
Run Code Online (Sandbox Code Playgroud)
它有一个问题https://github.com/elixir-lang/elixir/pull/2707
我发布了一个小型库来为任何数据类型正确地执行此操作.它实现了与blank?Elixir中Rails 方法相同的行为.
图书馆在这里:https://github.com/samphilipd/blankable
要安装,请将mixable添加到mix.exs中的依赖项列表中:
def deps do
[{:blankable, "~> 0.0.1"}]
end
Run Code Online (Sandbox Code Playgroud)
为什么不直接使用模式匹配
iex> a = ""
""
iex> b = "b"
"b"
iex> ^b = "b"
"b"
iex> ^a = "your String"
** (MatchError) no match of right hand side value: ""
iex> ^a = ""
""
Run Code Online (Sandbox Code Playgroud)
或者更好的是检查它的字节大小
iex> if byte_size("") == 0 do true else false end
true
iex> if byte_size("a") == 0 do true else false end
false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15533 次 |
| 最近记录: |