文字列が空であるか空白だけが含まれている場合、文字列が空白であることを意味します。 たとえば、""
," "
および"\n"
はすべて空白です。エリクシールで文字列が空白かどうかを確認する方法
Railsでは、.blank?
メソッドがあります。
エリクサー(またはフェニックスフレームワーク)に類似したものはありますか?
文字列が空であるか空白だけが含まれている場合、文字列が空白であることを意味します。 たとえば、""
," "
および"\n"
はすべて空白です。エリクシールで文字列が空白かどうかを確認する方法
Railsでは、.blank?
メソッドがあります。
エリクサー(またはフェニックスフレームワーク)に類似したものはありますか?
String.trim/1がありましたエリクサー1.3.0のようトリックを行うようです。
strip
がまだ機能していますが、これはソフトの廃止されたin the 1.3.0 releaseであり、http://elixir-lang.org/docs/stable/elixir/String.html#functionsのドキュメントには記載されていません。
あなたの3つの例を比較できる""
に変換するString.strip/1があります。
iex(4)> String.strip("\n") == ""
true
iex(5)> String.strip("") == ""
true
iex(6)> String.strip(" ") == ""
true
すべてのデータ型に対して適切にこれを行うための小さなライブラリを公開しました。これは可能な限りElksirのRails 'blank?
メソッドと同じ動作を実装しています。
ライブラリはここにある:https://github.com/samphilipd/blankable
mix.exsで依存関係のリストにblankable追加し、インストールするには:
def deps do
[{:blankable, "~> 0.0.1"}]
end
はなぜちょうど
iex> a = ""
""
iex> b = "b"
"b"
iex> ^b = "b"
"b"
iex> ^a = "your String"
** (MatchError) no match of right hand side value: ""
iex> ^a = ""
""
またはより良いパターンマッチングを使用していませんバイトサイズを確認する
iex> if byte_size("") == 0 do true else false end
true
iex> if byte_size("a") == 0 do true else false end
false
私はちょうどElixirの学習を始めましたが、初心者でもパターンマッチングが慣用的な方法であることがわかりました。 –
ガードの中でそれをしたいのですが? – nicooga
ストリップはElixir> 1.3.0でソフト非難されました。 https://github.com/elixir-lang/elixir/releases/tag/v1.3.0 – stevendaniels
ガードの中の空の文字列をチェックしたい場合は、次のようにしてください: 'binary_part(string、1、 - 1) ' –