当您想使用``'whe''但有几个条件时,是什么是最佳实践



我正在尝试学习长辈,我想知道 when

如果我有一个结构,并且当is_member是真的并且level大于10时,我想做什么,我该如何处理?

def allow_entry(%Player{ is_member: is_member, level: level })
  when ((the conditions above))

when可与任何类型的布尔表达式一起使用,与长生不老药中的任何其他模式都没有什么不同。

defmodule Player do
  defstruct is_member: nil, level: nil
end
defmodule TestModule do
  def allow_entry(%Player{ is_member: true, level: level }) 
    when level > 10 do
    IO.inspect(["Success"!, is_member, level])
  end
  def test() do
    # allow_entry(%Player{ is_member: true, level: 0}) # This will fail
    allow_entry(%Player{ is_member: true, level: 15}) # This will succeed
    # allow_entry(%Player{ is_member: false, level: 0}) # This will fail
    # allow_entry(%Player{ is_member: false, level: 15}) # This will fail
  end
end
TestModule.test()

相关内容