elixir - 如何将 atom 参数匹配到 cond 语句子句
问题描述
我想将以下功能放入一个功能中:
def discount(:standard), do: &standard/1
def discount(:bronze), do: &bronze/1
def discount(:silver), do: &silver/1
def discount(:gold), do: &gold/1
像这样的东西:
def discount(:rank) do
cond do
:standard -> &Shop.standard/1
:bronze -> &Shop.bronze/1
:silver -> &Shop.silver/1
:gold -> &Shop.gold/1
end
end
但是如何将函数参数:rank
与 cond 语句中的原子进行匹配/比较?比较==
对我也不起作用。
解决方案
cond
评估布尔条件。如果您想这样匹配,请使用case
:
def discount(rank) do
case rank do
:standard -> &Shop.standard/1
:bronze -> &Shop.bronze/1
:silver -> &Shop.silver/1
:gold -> &Shop.gold/1
end
end
推荐阅读
- flutter - 根据不同屏幕尺寸的坐标放置标记(Flutter)
- javascript - 未找到带有 svg 的 gatsby-background-image
- android - 如何在代码中设置两个视图背景颜色相同/相等
- python - Chrome 显示“数据;。” 使用 selenium 登录时在地址栏中
- eclipse - 原因:java.lang.ClassNotFoundException:无法加载请求的类:oracle.jdbc.driver.OracleDriver
- snowflake-cloud-data-platform - 4层嵌套Json,如何展平?
- python-3.x - Python中的多部分POST请求
- django - Django DecimalField max_digits 的最大值是多少?
- php - 读取简单的 API 返回空白屏幕?
- javascript - 使用评估时不同操作系统中的 Puppeteer 错误