我正在尝试学习长辈,我想知道 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()