Joe*_*son 5 elixir pattern-matching
假设我有一个函数的两个用例.对具有订阅的用户和具有订阅的用户执行某些操作.
def add_subscription(subscription_id, %User{subscription: nil})
# Do something with user here.
Run Code Online (Sandbox Code Playgroud)
和
def add_subscription(subscription_id, user)
Run Code Online (Sandbox Code Playgroud)
我如何进行这样的模式匹配,还是在第一个函数中使用用户?
谢谢!
Gaz*_*ler 11
您可以将函数参数绑定到变量:
def add_subscription(subscription_id, %User{subscription: nil} = user)
Run Code Online (Sandbox Code Playgroud)
惯例是在模式匹配后分配:
# Do This
def foo(%User{subscription: nil} = user)
# Instead of this
def foo(user = %User{subscription: nil})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |