Elixir에서 가변 길이 LIST의 두 번째 값을 얻는 방법
pry(1)> [a,b,c] = [1,2,3]
[1, 2, 3]
pry(2)> IO.puts b
2
:ok
그런데 요소수를 모르면 에러가 되어 버린다.
pry(7)> [a, b] = [1,2,3,4,5]
** (MatchError) no match of right hand side value: [1, 2, 3, 4, 5]
패턴 매치이므로 매치할 수 없는 요소가 있으면 에러가 되는 것은 당연하네요.
Elixir
cons演算子
또는 hd
함수? 그래서 가변 길이 LIST에서도 요소의 시작을 얻는 것은 간단합니다.pry(14)> head = hd [1,2,3,4,5]
1
pry(15)> [head|_] = [1,2,3,4,5]
[1, 2, 3, 4, 5]
pry(16)> head
1
이번에는 이 두 번째를 원합니다.
hd
및 tl
함수를 사용하여 LISP처럼 얻는 방법pry(17)> hd(tl([1,2,3,4,5]))
2
car
와 cdr
를 구사하여 요소에 도착하는 느낌, 좋아!그렇지만 이번은 2번째인 것이라도 조금 손을 빼고 싶다. 그래서 다음과 같이
pry(18)> [a,b|c] = [1,2,3,4,5]
[1, 2, 3, 4, 5]
pry(19)> b
2
↑의 방법이라면 c 이후는 가변 길이에 대응(
tl
상당) 하는 데에 2번째의 요소가 무엇인가 보면 곧 알 수 있다!코멘트에서 이하의 방법도 할 수 있다고 가르쳐 주셨다
그렇다면 이것이 다른 언어로 사용되는 잘하는 방식처럼 생각합니다
second = [1,2,3,4,5] |> Enum.at(1)
Reference
이 문제에 관하여(Elixir에서 가변 길이 LIST의 두 번째 값을 얻는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gr8distance/items/a5b35bcf9bccaf0b876b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)