在本文中,我们将带你了解我可以在Swift的if语句中使用范围运算符吗?在这篇文章中,我们将为您详细介绍我可以在Swift的if语句中使用范围运算符吗?的方方面面,并解答swiftif语句常见的疑惑,
在本文中,我们将带你了解我可以在Swift的if语句中使用范围运算符吗?在这篇文章中,我们将为您详细介绍我可以在Swift的if语句中使用范围运算符吗?的方方面面,并解答swift if语句常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的2.13 Swift的位运算符和防溢出运算符 [Swift原创教程]、angularjs – 我可以在ngIf语句中使用过滤器、c# – IF语句中的运算符顺序、if-statement – 我可以在Swift中使用range运算符和if语句吗?。
本文目录一览:- 我可以在Swift的if语句中使用范围运算符吗?(swift if语句)
- 2.13 Swift的位运算符和防溢出运算符 [Swift原创教程]
- angularjs – 我可以在ngIf语句中使用过滤器
- c# – IF语句中的运算符顺序
- if-statement – 我可以在Swift中使用range运算符和if语句吗?
我可以在Swift的if语句中使用范围运算符吗?(swift if语句)
是否可以使用范围运算符...
和..<
if语句。可能是这样的:
let statusCode = 204if statusCode in 200 ..< 299 { NSLog("Success")}
答案1
小编典典您可以使用“模式匹配”运算符~=
:
if 200 ... 299 ~= statusCode { print("success")}
或带有表达式模式的切换语句(内部使用模式匹配运算符):
switch statusCode {case 200 ... 299: print("success")default: print("failure")}
请注意,它..<
表示忽略上限值的范围,因此您可能需要 200 ... 299
或200 ..< 300
。
附加信息: 在优化打开的情况下,在Xcode 6.3中编译以上代码时,进行测试
if 200 ... 299 ~= statusCode
实际上根本不产生任何函数调用,只有三个汇编指令:
addq $-200, %rdicmpq $99, %rdija LBB0_1
这与生成的完全相同的汇编代码
if statusCode >= 200 && statusCode <= 299
您可以使用
xcrun -sdk macosx swiftc -O -emit-assembly main.swift
从Swift 2开始, 这可以写成
if case 200 ... 299 = statusCode { print("success")}
2.13 Swift的位运算符和防溢出运算符 [Swift原创教程]
原文:http://www.coolketang.com/staticCoding/5a99242517d0090035985c31.html
1. 本节课将为你演示,位运算符的使用。位运算符在各种语言中都存在,主要包含取反、与、或、异或等运算。
2. 首先定义一个无符号的整型常量,并设置其值为二进制的格式。
3. 对二进制数据进行取反运算,并观察右侧实时反馈区显示的结果。
4. 接着定义另外两个二进制格式的常量。
5. 通过[与]运算符,对两个二进制数值,按位进行与运算。
6. 对两个二进制数值,按位进行异或运算。
7. 定义另一个无符号的整型常量。
8. 通过左移运算符,将整数的二进制数值左移两位,使整数的值放大到4倍。
9. 通过左移运算符,将整数的值放大到16倍。
10. 通过右移运算符,将整数的二进制数值右移两位,将整数的值缩小至四分之一。
11. 接着演示溢出运算符的使用,首先获得16位整数的最大值。
12. 将拥有最大值的变量增加2,此时出现溢出的错误提示。
13. 然后将加号运算符,修改为溢出运算符,此时变量的值,将被约束为一个合理的值。
14. 位运算符可以直接应用在整数上,首先定义一个整型常量。
15. 最后使用[与]运算符,对两个整数进行[与]运算。尝试更改常量x的值,并观察右侧实时反馈区结果的变化。
angularjs – 我可以在ngIf语句中使用过滤器
例如:
<div ng-if="someVarString == ('someValue' | translate )"> <span>Hello</span> </div>
注意:translate过滤器返回一个字符串
我知道如何在控制器内部进行,但我想在HTML上使用
解决方法
angular.module('plunker').filter('two',function() { return function (input) { return 2; } });
相当于你的代码:
<div ng-if="2 == ('foobar' | two )"> <span>Hello</span> </div>
所以你的问题必须在其他地方.
c# – IF语句中的运算符顺序
// Example #1 if (cats != null && cats.Count > 0) { // Do something }
在#1中,我总是假设猫!= null需要先行,因为操作顺序从左到右进行评估.
但是,与示例#1不同,现在我想要做一些事情,如果对象为null或Count为零,因此我使用逻辑OR而不是AND:
// Example #2 if (table == null || table.Rows == null || table.Rows.Count <= 0) { // Do something }
逻辑比较的顺序是否重要?或者我也可以反转顺序并获得相同的结果,例如在示例#3中?
// Example #3 if (table.Rows.Count <= 0 || table.Rows == null || table == null) { // Do something }
(顺便说一下,我意识到我可以像下面那样重写#2,但我觉得它很乱,而且我仍然对OR运算符感到好奇)
// Example #4 if (!(table != null && table.Rows != null && table.Rows.Count > 0)) { // Do something }
解决方法
您问题中的前两个示例是正确的,如果table或table.Rows为null,则第三个将抛出异常.
if-statement – 我可以在Swift中使用range运算符和if语句吗?
let statusCode = 204 if statusCode in 200 ..< 299 { NSLog("Success") }
if 200 ... 299 ~= statusCode { println("success") }
或者具有表达式模式(使用模式匹配)的switch语句
运算符):
switch statusCode { case 200 ... 299: println("success") default: println("failure") }
注意,表示省略上限值的范围,因此您可能需要
200 … 299或200。 300。
附加信息:当上面的代码在Xcode 6.3中编译时
优化打开,然后进行测试
if 200 ... 299 ~= statusCode
实际上根本没有生成函数调用,只有三个汇编指令:
addq $-200,%rdi cmpq $99,%rdi ja LBB0_1
这是为生成的完全相同的汇编代码
if statusCode >= 200 && statusCode <= 299
您可以验证
xcrun -sdk macosx swiftc -O -emit-assembly main.swift
从Swift 2开始,这可以写成
if case 200 ... 299 = statusCode { print("success") }
使用新引入的if语句的模式匹配。
参见Swift 2 – Pattern matching in “if”。
我们今天的关于我可以在Swift的if语句中使用范围运算符吗?和swift if语句的分享已经告一段落,感谢您的关注,如果您想了解更多关于2.13 Swift的位运算符和防溢出运算符 [Swift原创教程]、angularjs – 我可以在ngIf语句中使用过滤器、c# – IF语句中的运算符顺序、if-statement – 我可以在Swift中使用range运算符和if语句吗?的相关信息,请在本站查询。
本文标签: