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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL数据库在高并发下的优化方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Dcoker安装(在线仓库),最新的服务器搭配容器使用