私はエリクシールにとって非常に新しいので、この単純な問題が私を苦しめています。エリクサー:ifステートメントの変数を設定してください
a = 0
if true do
a = 1 + 1
end
a = a + 1
IO.puts (a)
興味深いことに、これは正しい値を与えるだけでなく、警告を与える:
warning: the variable "a" is unsafe as it has been set inside a case/cond/receive/if/&&/||. Please explicitly return the variable value instead. For example:
case int do
1 -> atom = :one
2 -> atom = :two
end
should be written as
atom =
case int do
1 -> :one
2 -> :two
end
Unsafe variable found at:
Untitled:5
3
私は警告メッセージを理解していません。エリクサーでこれをする最善の方法は何ですか?
更新:この条件についてはどうですか?
a = 0
b = 0
if true do
a = 1 + 1
b = 2 + 2
end
a = a + 1
b = b + 2
IO.puts (a)
IO.puts (b)
同じif文で2つの値を更新する場合はどうなりますか?すなわちaおよびb。ネストされたifはどうでしょうか? – iphaaw
次に、パターンマッチング '{a、b} =真ならば{a + 1、b + 2} else {a、b} end' –
あなたが言っていることを完全に理解しているところでは、私にはかなりの意味があります。私は、従来のプログラミング技術の私の方法で立ち往生しなければならない。複雑な数学問題を解決するには、いくつかのネストされたifで40個の変数を変更する必要がある場合、すべてのネストされたif文に対して{a、..、a40}を定義する必要がありますか?それはいくつかの非常に醜いコードのために作るつもりです。私はこの問題を昔ながらのやり方で考えなければならないと確信しています。ありがとう。 – iphaaw