1. ホーム
  2. elixir

[解決済み] Elixirで変数の種類を確認する方法

2022-04-24 09:38:42

質問

Elixirでは、Pythonのような型チェックはどのように行うのですか?

>>> a = "test"
>>> type(a)
<type 'str'>
>>> b =10
>>> type(b)
<type 'int'>

Elixir には 'is_bitstring', 'is_float', 'is_list', 'is_map' などの型チェッカーがあるそうですが、型が何なのかわからない場合はどうすればいいのでしょうか?

解決方法は?

Elixir/Erlangでは変数の型を直接取得する方法はありません。

通常、変数の型がわかれば、それに応じて動作するようになります。 is_* という関数を使って、変数の型に応じた動作をさせることができます。

Erlangを学ぶには 素敵な章 はErlangの(つまりElixirの)タイピングについてです。

を使うのが最もイディオム的な方法です。 is_* 関数のファミリーは、おそらくパターン・マッチで使用されるでしょう。

def my_fun(arg) when is_map(arg), do: ...
def my_fun(arg) when is_list(arg), do: ...
def my_fun(arg) when is_integer(arg), do: ...
# ...and so on