这些运营商在Elixir中意味着什么?〜>>,<<〜

Cha*_*gwu 7 operators elixir

这些运营商在Elixir中意味着什么? ~>>, <<~

它们列在这里http://elixir-lang.org/getting-started/basic-operators.html

我收到以下错误:

iex(28)> b=1
1
iex(29)> b~>>1
** (CompileError) iex:29: undefined function ~>>/2
Run Code Online (Sandbox Code Playgroud)

Paw*_*rok 12

有些运算符目前没有任何意义,但您可以在定义的宏中使用它们,或者只将它们定义为函数.例如:

defmodule Operators do
  def a ~>> b do
    a + b
  end
end

defmodule Test do
  def test do
    import Operators

    1 ~>> 2
  end
end

IO.inspect(Test.test) # => 3
Run Code Online (Sandbox Code Playgroud)

一般的想法是Elixir希望避免操作员扩散(想想定义了许多新操作符的库),因此在定义宏时,您需要使用已存在的宏.