"foo"<> x = "foobar"(Elixir)

소개



  • Elixir 즐기십니까

  • <>/2 의 재미있는 사용법을 소개합니다
  • 언젠가 그 중 사용할 기회가있을 것이라고 개인적으로 생각합니다

  • 2021/02/15(월)에 개최한 autoracex #10 이라고 하는 Elixir 의 순수한 모쿠모쿠회에서의 성과입니다 .

    "foo" <> x = "foobar"


    iex> "foo" <> x = "foobar"
    "foobar"
    
    iex> x
    "bar"
    

  • <>/2 은 위와 같은 사용법을 할 수 있습니다
  • 위의 예는 공식 Examples을 빌렸습니다

  • 나는 Elixir 연습 가이드 이라는 책 에서 알았습니다
  • iex> "foo" <> "bar" = "foobar"
    "foobar"
    
    iex> "f" <> "o" <> "o" <> "bar" = "foobar"
    "foobar
    
  • 별로 의미가 없을지도 모릅니다만 이런 사용법도 할 수 있습니다
  • 그건 그렇고, <>/2의 왼쪽은 literal binary 여야합니다
  • 요점은 다음과 같이 왼쪽에 변수를 가져와 매치 시키려고 해도 움직이지 않아, CompileError이 되어 버립니다.
    iex> x <> "bar" = "foobar"
    ** (ArgumentError) the left argument of <> operator inside a match should always be a literal binary because its size can't be verified. Got: x
        (elixir 1.11.3) lib/kernel.ex:1857: Kernel.invalid_concat_left_argument_error/1
        (elixir 1.11.3) lib/kernel.ex:1829: Kernel.wrap_concatenation/3
        (elixir 1.11.3) lib/kernel.ex:1808: Kernel.extract_concatenations/2
        (elixir 1.11.3) expanding macro: Kernel.<>/2
        iex:10: (file)
    

    Wrapping Up



  • 패턴 매칭 , 안쪽이 깊네요
  • Enjoy Elixir
  • 좋은 웹페이지 즐겨찾기