'variable constant1 is unused'오류가 발생하는 사례가 있습니다. 변수를 무시하고 최상위 라인을 반환하는 것으로 보이므로 변수에 범위가 분명히 없습니다. 상수를 1로 바꾸면 작동합니다. 엘릭서에서 이것을하는 가장 좋은 방법은 무엇입니까?Elixir : case 문에서 변수 사용
warning: variable constant1 is unused
Untitled 9:15
{1, 2, 3, 4}
도 작동하지 않는 변수에 상수를 변경 : 여기
defmodule Main
do
def constant1, do: 1
def constant2, do: 1
def constant3, do: 1
x = 1
y = 0
z = 0
{a, b, c, d} =
case {x, y, z} do
{constant1, constant2, constant3} -> {1, 2, 3, 4}
{constant1, constant2, _} -> {5, 6, 7, 8}
{constant1, _, _} -> {9, 10, 11, 12}
{_, _, _} -> {13, 14, 15, 16}
end
IO.inspect {a, b, c, d}
end
이 출력됩니다.
답변 해 주셔서 감사합니다. 변수 대신 전역 상수를 사용하려면 어떻게해야합니까? @ constant1 구문을 사용하여 시도했지만 단항 연산자 ^에 대한 잘못된 인수가 잘못되었습니다. 기존 변수가 예상 됨 :^@ constant1 – iphaaw
수 없습니다. https://github.com/elixir-lang/elixir/issues/2963 기본적으로 Elixir 모듈 속성은 컴파일 타임에만 사용할 수 있기 때문에 (Erlang과 달리) 모듈에 저장되지 않기 때문입니다. – mudasobwa
대신 전역 변수를 사용할 수 있습니까? – iphaaw