swift4.1 系统学习五
简单的代码也要亲自实现看看。
//1. 范围操作符
这是一个新的概念,在swift中常常使用。
1.闭区间范围操作符:(...),例如: a...b 在数学中的含义是[a,b]
2.半开区间范围操作符: (..<), 例如, a..<b在数学中的含义是[a, b)
这两种类型都属于结构体类型。
注意:
1.范围操作的两个操作数都要遵循Comparable协议,即要能比较出大小;
2.左边的值必须小于等于右边的值;
// // main.swift // swift05 // // Created by iOS on 2018/9/25. // Copyright © 2018年 weiman. All rights reserved. // import Foundation //swift学习笔记5 // 应用实例 let stringRange = "aaa"..."ccc" print(stringRange) let charRange = Character("a")..<Character("c") print(charRange) switch "ccb" { case stringRange: print("在stringRange范围内") default: print("不在stringRange范围内") } switch Character("b") { case charRange: print("在 charRange 内") default: print("不在 charRange 内") } // 通过for-in循环依次输出range内的值 for i in 0...10 { print("i = \(i)") } print("\n") for i in 0..<10 { print("i = \(i)") } let array = [1, 2, 3, 4, 5, 6, 7, 8] let range = 1...4 //取数组的子数组 let subArray = array[range] print("子数组: \(subArray)") print("上边界: \(range.upperBound)") print("下边界:\(range.lowerBound)") print("是否为空: \(range.isEmpty)")
// 2. 单边范围操作符(swift4.0以后)
/*
只对范围操作数的一端设置操作数,另一端缺省。
三种类型:
- a... : 大于等于a的范围 , >=a
- ...b : 小于等于b的范围, <=b
- ..<b : 小于b的范围,<b
应用:
获取数组的子数组,获取字符串的子串
*/
do { let array = [1, 2, 3, 4, 5, 6, 7, 8, 9] //1. 取array从索引2到最后一个元素的子数组 let sub1 = array[2...] print("sub1: \(sub1)") //2. 取从0开始到第6个位置的子数组 let sub2 = array[...6] print("sub2: \(sub2)") //3. 取从索引0到5,不包括5的子数组 let sub3 = array[..<5] print("sub3: \(sub3)") }
/*
注意:
由于单边操作符不能表示一个有限范围的值,因为它不能遵循Sequence协议,
从而我们不能将它们用在for-in循环中。
*/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
6.Swift学习之逻辑分支
一. 分支的介绍 分支语句即 if/switch/三目运算符等判断语句 通过分支语句可以控制程序的执行流程 二. if分支语句 和OC中if语句有一定的区别 判断句可以不加() 判断之后的执行语句必须用{}阔起来 在判断句中必须有明确的真假 不再有非0即真 必须有明确的Bool值 案例一 let a = 10 // 错误写法: //if a { // print("a") //} // 正确写法 if a > 9 { print(a) } 案例二 let score = 87 if score < 60 { print("不及格") } else if score <= 70 { print("及格") } else if score <= 80 { print("良好") } else if score <= 90 { print("优秀") } else { print("完美") } 案例三: // 这个是可选类型,因为只有声明成可选类型后,才可以判断是否为空 // 可选类型会在后续讲解,可先了解即可 let view : UIView? = UIV...
- 下一篇
iOS 编写高质量Objective-C代码(一)
《编写高质量OC代码》已经顺利完成一二三四五篇!附上链接: iOS 编写高质量Objective-C代码(一)iOS 编写高质量Objective-C代码(二)iOS 编写高质量Objective-C代码(三)iOS 编写高质量Objective-C代码(四)iOS 编写高质量Objective-C代码(五) 目前iOS开发主推的官方语言有两种:Objective-C 和 Swift。今天,小编帮助大家更加熟悉Objective-C,并且聊一聊如何才能编写高质量的OC代码。 一、Objective-C的起源 谈到Objective-C语言的起源,可要比Java还要早十多年。~Java在1995年推出,而Objective-C早在1980年代就已经出现了。~ Objective-C (OC) 由Smalltalk语言演化而来,后者是消息传递型语言的鼻祖。 消息传递?是的!引入了今天的第一个Key。OC与C++、Java等面向对象语言类似,但又有很大区别。为什么这么说呢?首先要引入的话题就是OC使用消息传递机制,而并非C++、Java使用函数调用机制。 // Objective-C : m...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Mario游戏-低调大师作品
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7安装Docker,走上虚拟化容器引擎之路