fbpx
维基百科

卫语句

计算机程序设计中,(guard)是布尔表达式,其结果必须为真,程序才能执行下去。卫语句guard codeguard clause)用于检查先决条件。卫语句的用途,例如:

  • 引用(reference)使用前检查是否为空引用;
  • 处置模式英语dispose pattern使用一个布尔域,使得释放资源操作成为幂等运算,即多次释放资源等效于只释放一次。

概述 编辑

卫语句可用于子进程提前退出(early exit),这是结构化程序设计的一种常见偏离,可删除一层嵌套使得代码更扁平:[1]if guard { ... }替代为:if not guard: return; ....

APLHaskellCleanErlangoccamPromela英语PromelaOCamlSwift[2]Scala程序设计语言中,这一术语有特殊含义。

Mathematica中,卫被称为约束(constraints)。

形式化方法的一种语言,守卫命令语言中,卫是基础概念。

在增强的模式匹配中,卫语句用于跳过一些即使结构匹配的模式。

条件语句中的布尔表达式也符合卫的定义,虽然被称作“条件”。

下述Haskell语言的例子,卫出现在每对"|"与"="之间:

f x  | x > 0 = 1  | otherwise = 0 

这类似于如下的数学表示的"if"与"otherwise" 子句就是卫语句:

 

如果有多个平行的卫语句,则按照自顶向下顺序,第一个通过的分支被选择。

例子 编辑

public string Foo(string username) {  if (username == null) {  throw new ArgumentNullException(nameof(username));  }  // Rest of the method code follows here... } 

参考文献 编辑

  1. ^ Beck, Kent. Guard Clause. Smalltalk Best Practice Patterns,. 1997: 178–179. 
  2. ^ Cook, Nate. guard & defer. NSHipster. [2016-02-26]. (原始内容于2020-11-25). 

外部链接 编辑

  • Guard (页面存档备份,存于互联网档案馆) in Free On-Line Dictionary of Computing - FOLDOC, Denis Howe (editor).
  • The Haskell 98 Report, chapter 3 Expressions(页面存档备份,存于互联网档案馆).
  • The Mathematica Book, section
  • The Glorious Glasgow Haskell Compilation System User's Guide, Version 6.4, section

卫语句, 在计算机程序设计中, guard, 是布尔表达式, 其结果必须为真, 程序才能执行下去, guard, code或guard, clause, 用于检查先决条件, 的用途, 例如, 引用, reference, 使用前检查是否为空引用, 处置模式, 英语, dispose, pattern, 使用一个布尔域, 使得释放资源操作成为幂等运算, 即多次释放资源等效于只释放一次, 目录, 概述, 例子, 参考文献, 外部链接概述, 编辑可用于子进程的提前退出, early, exit, 这是结构化程序设计的一种. 在计算机程序设计中 卫 guard 是布尔表达式 其结果必须为真 程序才能执行下去 卫语句 guard code或guard clause 用于检查先决条件 卫语句的用途 例如 引用 reference 使用前检查是否为空引用 处置模式 英语 dispose pattern 使用一个布尔域 使得释放资源操作成为幂等运算 即多次释放资源等效于只释放一次 目录 1 概述 2 例子 3 参考文献 4 外部链接概述 编辑卫语句可用于子进程的提前退出 early exit 这是结构化程序设计的一种常见偏离 可删除一层嵌套使得代码更扁平 1 把if guard 替代为 if not guard return 在APL Haskell Clean Erlang occam Promela 英语 Promela OCaml Swift 2 与Scala程序设计语言中 这一术语有特殊含义 Mathematica中 卫被称为约束 constraints 形式化方法的一种语言 守卫命令语言中 卫是基础概念 在增强的模式匹配中 卫语句用于跳过一些即使结构匹配的模式 条件语句中的布尔表达式也符合卫的定义 虽然被称作 条件 下述Haskell语言的例子 卫出现在每对 与 之间 f x x gt 0 1 otherwise 0 这类似于如下的数学表示的 if 与 otherwise 子句就是卫语句 f x 1 if x gt 0 0 otherwise displaystyle f x left begin matrix 1 amp mbox if x gt 0 0 amp mbox otherwise end matrix right nbsp 如果有多个平行的卫语句 则按照自顶向下顺序 第一个通过的分支被选择 例子 编辑public string Foo string username if username null throw new ArgumentNullException nameof username Rest of the method code follows here 参考文献 编辑 Beck Kent Guard Clause Smalltalk Best Practice Patterns 1997 178 179 Cook Nate guard amp defer NSHipster 2016 02 26 原始内容存档于2020 11 25 外部链接 编辑Guard 页面存档备份 存于互联网档案馆 in Free On Line Dictionary of Computing FOLDOC Denis Howe editor The Haskell 98 Report chapter 3 Expressions 页面存档备份 存于互联网档案馆 The Mathematica Book section 2 3 5 Putting Constraints on Patterns The Glorious Glasgow Haskell Compilation System User s Guide Version 6 4 section 7 3 2 Pattern guards 取自 https zh wikipedia org w index php title 卫语句 amp oldid 67890979, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。