首页 > 其他分享 >Swift 范围表达式

Swift 范围表达式

时间:2022-09-27 12:11:32浏览次数:100  
标签:... .. 打印 封闭 运算符 Swift 表达式 范围

Swift 范围表达式

不同类型的范围运算符

一个 ** 范围** 是两个数值区间之间的一系列值。 Range 实例可以使用 ** 范围运算符** . Swift 包含几个范围运算符,它们是表示值范围的快捷方式。范围运算符可以包括或排除范围上限,以某个值开始范围,或者可以在某个最大值之前结束。 Swift 中的范围允许我们选择 字符串 , 收藏品 , 和 其他类型 .

**下界** Swift 中的范围实例用于获取范围的最小值或起点 **上界** 用于获取最大值或范围的终点。

封闭范围

封闭范围 操作员 ( 小写大写 ) 定义一个范围从 降低 , 并包括值 降低 .封闭范围运算符操作包含它的下限和上限。

 对于 n 在 3...5 {  
 打印(n)  
 }  
 // 打印“3”  
 // 打印“4”  
 // 打印“5”

封闭范围 可以使用封闭范围运算符 ( ... )。封闭范围运算符的初始值应小于或等于上限值,否则将引发运行时错误。因此 ClosedRange 实例不能表示空范围。

**让** arrInstance:封闭范围<Int>= 0...5  
 打印(arrInstance.contains(3))  
 // **真的** **让** zeroInclusive = 0...0  
 zeroInclusive.contains(0)  
 // **真的**  
 zeroInclusive.isEmpty  
 // **错误的** **让** arrInstance1:封闭范围<Int>= 4...3  
 **//致命错误:范围需要lowerBound <= upperBound**

封闭范围可数闭合范围 大致相同,但以防万一 **** CountableClosedRange 的 **** 这 边界 您指定的应符合 ** 可跨步** 协议和 bound.stride 应符合 有符号整数 这意味着 可数闭合范围 可以创建 诠释 仅限范围。

即使我们迭代一个 双倍的 范围内 换入 循环利用 **步幅(从:到:通过:)** 或者 **大步(从:通过:通过:)** 其中 经过 **:** 参数定义了我们希望在每次迭代中增加的因子。

半开范围

半开范围 操作员 ( 降低.. ) 定义一个范围从 降低 ,但不包括 .

 对于 n 在 3..<5 {  
 打印(n)  
 }  
 // 打印“3”  
 // 打印“4”

半开范围 可以使用半开范围运算符 ( 降低.. )。如果下限值和上限值相同,则半开范围实例可以表示一个空区间。

**让** arrInstance = 0..<5  
 打印(arrInstance.contains(3))  
 // **真的  
** arrInstance.contains(6)  
 // **错误的** 让空 = 0..<0  
 empty.contains(0)  
 // **错误的**  
 空的.isEmpty  
 // **真的** // 在集合中 **为了** n **在** 3..<3 {  
 打印(n)  
 }  
 // 什么都不会打印,因为下限值和上限值相同

资源

单边范围

单面范围 运算符仅在一侧具有值,而另一侧包含直到无限的元素,这就是它被称为的原因 单边范围。 我们可以创造 __ 使用任一的单边范围 ...上 , 降低... 或者 .. 操作员。以下是不同的表达方式 单边范围。

a) PartialRangeUpTo

PartialRangeUpTo 实例是通过使用 ( .. )。 PartialRangeUpTo **** instance 可用于检查某个值是否包含在特定的值范围内。

 让 partialRangeUpTo = ..<5  
 partialRangeUpTo.contains(4)  
 // 真的

您可以使用集合索引的 PartialRangeUpTo 实例来表示从集合开始到(但不包括)部分范围上限的范围。

 让数字 = [10, 20, 30, 40, 50, 60, 70]  
 打印(数字[..<3])  
 // 打印“[10, 20, 30]”

b) 部分范围通过

部分范围通过 实例是通过使用前缀封闭范围运算符 ( ...上 )。部分范围通过 **** instance 可用于检查某个值是否包含在特定的值范围内。

 让 partialRangeThrough = ...5  
 partialRangeThrough.contains(4)  
 // 真的

您可以使用 PartialRangeThrough **** 集合索引的实例,表示从集合开始到(包括)部分范围的上限的范围。

 让数字 = [10, 20, 30, 40, 50, 60, 70]  
 打印(数字[...3])  
 // 打印“[10, 20, 30, 40]”

c) PartialRangeFrom

部分范围自 使用后缀范围运算符 ( 降低.. )。您可以使用部分范围快速检查某个值是否包含在特定范围的值中

 让partialRangeFrom = 5...  
 partialRangeFrom.contains(4)  
 // 错误的 partialRangeFrom.contains(5)  
 // 真的

我们可以使用集合索引的部分范围来表示从部分范围的下限到集合末尾的范围。

 让数字 = [10, 20, 30, 40, 50, 60, 70]  
 打印(数字[3...])  
 // 打印“[40, 50, 60, 70]”

PartialRangeFrom 序列无限向上计数,因此建议不要与在返回之前读取整个序列的方法一起使用,例如 地图(_:) , 筛选(_:) , 或者 后缀(_:) .换句话说,迭代一个 部分范围自 范围 **** 需要手动检查循环应该在哪里结束,否则它会无限期地继续并且程序可能会卡住。

根据用例,所有上述类型的范围运算符都可以与循环 if 条件、数组迭代甚至 switch case 语句一起使用。

要记住的事情

  • 下限值必须小于或等于上限值。
  • 下限和上限值可以是负数。
  • 我们可以使用 for-in 循环遍历范围(不包括单边范围)。
  • 我们可以使用范围运算符来访问数组和集合的元素。

感谢阅读,可以关注我 中等的 对于更新的文章。

如果您有任何意见、问题或建议,请随时在下面的评论部分发表! 请 分享 并给 拍手 如果你喜欢 这个帖子。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/39556/02442712

标签:...,..,打印,封闭,运算符,Swift,表达式,范围
From: https://www.cnblogs.com/amboke/p/16734125.html

相关文章

  • Swift语言实战入门 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/127tpsXhcCwXpp0B1lXfs9g点击这里获取提取码 ......
  • spel 表达式语言 注入
    /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里给大家......
  • 数据处理——研究范围栅格化
    栅格化公式图 生成的栅格图   代码:1importpandasaspd2importnumpyasnp3importgeopandasasgpd4#用geopandas包读取深圳的行政区划sh......
  • 函数声明和函数表达式声明的区别
    函数声明:sum();//10functionsum(){console.log(10)}表达式声明   s();//报错sisnotafunction   vars=function(){console.log(20)}在预解析的过......
  • 身份证号、手机号、邮箱正则表达式
    邮箱验证:varregEmail=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;手机号验证:varregMobile=/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18......
  • LeetCode[150] 逆波兰表达式求值
    1逆波兰表达式求值1.1题目描述        根据逆波兰表示法,求表达式的值。有效的算符包括+、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 ......
  • 正则表达式语法
    正则表达式语法元字符-转义符\需要用到转义符号的字符有一下:.*+()/?[]^{}元字符-字符匹配符符号符号示例解释[]可接收的字符列表[efgh]e、f、g、h......
  • Swift h5 调起微信支付 并返回APP
    参考简书:https://www.jianshu.com/p/2d2237ad16d6第一步先配置URLtypes(在微信操作完成以后回到原APP)第二步直接上代码,然后再解释funcwebView(_webView:WKWebView,......
  • 正则表达式
    1.grep/egrep工具1.1打印符合要求的行数grep-c'root'/etc/passwd21.2打印某个关键词的所在行时忽略大小写[root@shell~]#grep-i'root'/etc/passwdroot:x:......
  • DatePicker中选择日期范围(daterange)的日期做为搜索条件时,前端和后端处理的两种不同方
    一、前端将日期分为开始时间和结束时间1、前端代码<el-form-itemlabel="实际入库时间区间:"><el-date-pickerv-model="listQuery.inStoreDat......