假设我有两个函数用例。对有订阅的用户做一些事情,对没有订阅的用户做一些事情。
def add_subscription(subscription_id, %User{subscription: nil})
# Do something with user here.
和
def add_subscription(subscription_id, user)
我如何进行这样的模式匹配并且仍然在第一个函数中使用用户?
谢谢!
最佳答案
您可以将函数参数绑定(bind)到变量:
def add_subscription(subscription_id, %User{subscription: nil} = user)
约定是在模式匹配之后分配:
# Do This
def foo(%User{subscription: nil} = user)
# Instead of this
def foo(user = %User{subscription: nil})
关于pattern-matching - 如何在 elixir 函数中使用匹配的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36184062/