elixir - 为什么是数字|| 布尔数字?
问题描述
我是 Elixir 的新手,但我找不到我的问题的答案。以下是我输入的一些示例iex
。
expression result
9 || true 9
true || 9 true
9 && true true
true && 9 9
因此,当有一个参数时||
,它将评估为第一个参数,并&&
在一个参数不是布尔值时持续。是如何实施||
的&&
?他们为什么要返回这些结果?
解决方案
这是短路布尔逻辑上下文中的通用语言工具。抛出一些有用的示例案例的伪代码:
need_a_number() && calculate_number() # do the expensive calculate_number() call, and evaluate to
# its result, only if need_a_number() is truthy.
get_a_string() || "default string" # returns "default_string" if get_a_string() is falsey
如果您的&&
and||
仅返回布尔值,则您将无法在单个操作中同时进行分支和计算。
推荐阅读
- angular - 根据上下文角度动态设置包含第三方组件的样式组件
- python - 忽略
信息 - vb.net - 无法从 vb.net 中的 DataGridView 中删除一行
- r - 使用 for 循环 (R) 创建表
- android - 使用 huawei-mlkit 将照片与 Perceptual_hashing 进行比较以找到显示同一个人的照片?
- java - 如何将字符串数组转换为可附加列表?
- mysql - 使用 lower() 函数检索 100 个元素的问题
- python - GridSearchCV 中的 Python 错误:“y_true 中仅存在一个类。在这种情况下未定义 ROC AUC 分数。”
- javascript - 使用jQuery DataTables重新排序到另一个位置后如何过滤列?
- json - 如何在深度嵌套的 JSON 中将所有子 ID 与其父 ID 进行比较?