case

case 允许我们在多个条件中,选取一个与参数匹配的项。匿名函数也可以完成域case相同的功能

iex(13)> case {1, 2, 3} do
...(13)> {1, x, 3} when  x > 0 ->
...(13)> "Will match"
...(13)> _ -> "Would match, if guard condition were not satisfied"
...(13)> end
"Will match"
iex(14)>

cond
当我们需要检查不同条件并且找到第一个结果不是 nil 或是 false 的值,在这种条件下, 使用 cond
为避免返回值为 nilfalse,需添加一个默认返回值,ture 时的状态

iex> cond do
...>   2 + 2 == 5 ->
...>     "This is never true"
...>   2 * 2 == 3 ->
...>     "Nor this"
...>   true -> # 除了 nil 和 false 任何值cond都认为为 true
...>     "This is always true (equivalent to else)"
...> end
"This is always true (equivalent to else)"

if and unless

当我们只需要检查一个条件是否符合要求时,可以使用 if/2unless/2

注意⚠️: 在case、cond、if、unless为内部作用域,内部作用域内操作外部变量,不会改变外部变量的值。

Elixir - case, cond, and if相关推荐

  1. shell 脚本简单入门

    好久不写shell脚本,有些生疏.总结下shell的语法,以便后续参考,快速捡起来. shell 脚本执行的3种方式: 1). ./xx.sh (xx.sh 需要有执行权限) 2). source x ...

  2. Reversing Ethereum Smart Contracts: Part 2

    In my previous tutorial, we began reversing engineering the Greeter.sol contract. Specifically, we l ...

  3. 针对 Java 开发人员的 C# 编程语言

    •    C# 语言引入了一些新的语言构造,如 foreach.索引器.属性.委托.运算符重载和其他语言构造.在本文后面我们将更详细地讨论这些构造.    本页内容  源文件约定  顶层声明  完全限 ...

  4. 3D万花筒无限延伸动画特效(源码)

    HTML代码 <!DOCTYPE html> <html lang="en" > <head> <meta charset="U ...

  5. ThinkPHP-1基础

    实践学习php,thinkphp,Redis,vue,uni-app等技术,推荐开源电商系统likeshop,可以借鉴思路,可去版权免费商用,gitee下载地址: 点击进项目地址 国产 PHP web ...

  6. openGL之glsl入门6--画三维图魔方、圆柱体

    这一章介绍坐标变换与矩阵相关内容,对应红宝书第5章内容,并通过两个简单的例子展示矩阵变换的效果. 1. 坐标变换 变换的类型有多种,包括视图.模型.投影.视口变换等,概念可以参照红宝书5.1章节,概念 ...

  7. UML相关工具一览(截止2010年7月)

    UML相关工具一览(截止2010年7月) 整理 本文的PDF版本在此下载>> 以下总结了全世界的各种UML相关工具,按工具名称字母排序. 工具(最新版本) 厂商&地址 版权 UML ...

  8. UML相关工具一览(截止2012年5月)

    原文地址:http://www.umlchina.com/tools/newindex1.htm UML相关工具一览(截止2012年5月)  整理 本文的PDF版本在此下载>> 以下总结了 ...

  9. Recheck Cond filter IO\CPU放大 原理与优化CASE - 含 超级大表 不包含(反选) SQL优化

    标签 PostgreSQL , 全文检索 , 数组 , 不包含 , not in , bitmap scan filter , toast 切片存储 , except , IO , cpu , 放大 ...

最新文章

  1. system.out 汉字乱码
  2. Science: 多因子在驱动土壤功能及真菌群落变化中的作用
  3. 半可信混合技术:BCH混币工具CashShuffle引入STAT
  4. Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)
  5. Ubuntu16.04安装搜狗输入法后有黑边问题的解决方法
  6. 6-4 二叉树的非递归遍历 (25分)_本周小结!(二叉树)
  7. 读书笔记《Spring Boot实战 —— Java EE 开发的颠覆者》
  8. 0.07 秒启动一个 SpringBoot 项目!
  9. 3.8 Spark 用户日志分析
  10. SurfaceView实例
  11. Java Eclipse下载安装教程
  12. Windows 虚拟机介绍以及安装系统教程
  13. 如何制作双层PDF文档?其实只需简单一步!
  14. 23个热门python爬虫项目,爬虫仍需谨慎,牢饭不是很香!!!
  15. python股票交易模型_利用python建立股票量化交易系统(一)——小市值选股票模型...
  16. 非线性动力学常见的分析方法包括
  17. 远程控制teamviewer|远程桌面teamviewer|远程桌面连接软件teamviewer|teamviewer无人值守
  18. 微信小程序广告接入,小程序加广告
  19. 山东省第七届ACM大赛E题题解
  20. 【渝粤教育】电大中专电子商务网站建设与维护 (6)作业 题库

热门文章

  1. 使用fo-dicom读取Dicom文件的PixelData信息及像素信息(C# / fo-dicom)
  2. (16)关于面向对象的练习
  3. jzoj 3812 Mooo Moo
  4. java枚举类Enum入门理解
  5. 概率统计·假设检验【正态总体均值的假设检验、正态总体方差的假设检验】
  6. PDF转换成PPT简便的方法
  7. 【秃头系列】-【本科生毕设论文格式Word】小修改和小问题
  8. 富士施乐248b粉盒清零_打印机DocuPrintM228B如何清零
  9. 2018百度AI开发者大会以及个人对百度开发平台的观点
  10. 中国十大军工集团介绍