Elixirのモジュール属性定義でパターンマッチがしたかったけどできなくて泣いちゃった
発端
プログラミングElixir 7章の練習問題でシーザー暗号を作る際に、モジュールで'a'
と'z'
の数値を定義しておきたかったので、パターンマッチしてくれねぇかなとおもったけど出来ませんでした
環境は以下
$ elixir -v
Erlang/OTP 23 [erts-11.1.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Elixir 1.11.2 (compiled with Erlang/OTP 23)
理想
defmodule MyModule do
[@a_val, @z_val] 'az'
end
ざんねんながらNG泣いちゃった。
** (SyntaxError) practice7/caesar.exs:4:20: syntax error before: "az"
(elixir 1.11.2) lib/kernel/parallel_compiler.ex:315: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
最終的にこの形になりました
defmodule MyModule do
@a_val Enum.at('a', 0)
@z_val Enum.at('z', 0)
end
動けばOKではありますけど、気持ち悪いので何か良い書き方とかあったらコメントいただけると嬉しいです
Author And Source
この問題について(Elixirのモジュール属性定義でパターンマッチがしたかったけどできなくて泣いちゃった), 我々は、より多くの情報をここで見つけました https://qiita.com/protein_wasshoi/items/b8c5c288bbfbe7ba6173著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .