Swift的Optional、Array
2016-07-26 14:23
447 查看
一、Optional
1、可选型声明关键符号?,每个类型都有可选性,比如下面声明为整型可选性。
var errorCode: Int? =404
print(errorCode)
print(errorCode!)
2、可选型解包关键符号!,例如,下方errorCode解包后就是一个整型变量。
//解包后就是整型
var aInt = errorCode!
aInt
var bInt = 0;
bInt = aInt;
bInt
3、if let 表示判断可选性变量不为nil,Swift中的nil和OC中不同,并不是代表空,而是一种特定的类型,而且变量不会被赋值默认值,所以声明后,如果要使用该变量必须为改变量赋值。
var errorMessage: String? ="Not Found"
//判断errorMessage是否有值,当不为nil时,解包成功,执行if语句
if let errorMessage =errorMessage
{
errorMessage.uppercaseString
}
//也可以写成:此种写法含义与上面if let相同
errorMessage?.uppercaseString
//意义跟上面两种完全不同,此时代表你确定errorMessage不为nil,所以强制解包。当errorMessage这个字符串可选型为nil时,编译会爆error
errorMessage!.uppercaseString
4、我们调用第三方的APK的时候可能errorMessage?.uppercaseString之后返回的还是一个可选型,所以我们可以继续?.方法名,这种就叫做可选型的链条(Optional
Chaining)
//返回值也是可选型,因为可能会转换失败,
errorMessage?.uppercaseString
5、a ?? b 相当于 a !=nil ? 1 : 2
6、隐士可选型
var name: String! =nil
//使用的时候必须赋值,不赋值会报错,无法执行
name = "not found"
"This message is "+name
二、数组
1、声明数组
//整型Array
var aArray = ["1","2","3","4","5"]
//相当于
var bArray: [String] = ["1","2","3","4","5"]
//swift 字符串双引号之内默认是String,哪怕只有一个字符,如果想要声明Character显示声明
var cArray: [Character] = ["1","2","3","4","5"]
//或者也可以写成
var dArray: Array = ["1","2","3","4","5"]
//或者
var eArray: Array<String> = ["1","2","3","4","5"]
2、NSArray
//array 和NSArray最大的区别是NSArray可以放不同类型的数据
var gArray: NSArray = ["1",2,"3","4","5"]
//array中放不同的数据
会默认把数组里面的类型转成object
即:Array[object]
var fArray: Array = ["1",2,"3","4","5"]
1、可选型声明关键符号?,每个类型都有可选性,比如下面声明为整型可选性。
var errorCode: Int? =404
print(errorCode)
print(errorCode!)
2、可选型解包关键符号!,例如,下方errorCode解包后就是一个整型变量。
//解包后就是整型
var aInt = errorCode!
aInt
var bInt = 0;
bInt = aInt;
bInt
3、if let 表示判断可选性变量不为nil,Swift中的nil和OC中不同,并不是代表空,而是一种特定的类型,而且变量不会被赋值默认值,所以声明后,如果要使用该变量必须为改变量赋值。
var errorMessage: String? ="Not Found"
//判断errorMessage是否有值,当不为nil时,解包成功,执行if语句
if let errorMessage =errorMessage
{
errorMessage.uppercaseString
}
//也可以写成:此种写法含义与上面if let相同
errorMessage?.uppercaseString
//意义跟上面两种完全不同,此时代表你确定errorMessage不为nil,所以强制解包。当errorMessage这个字符串可选型为nil时,编译会爆error
errorMessage!.uppercaseString
4、我们调用第三方的APK的时候可能errorMessage?.uppercaseString之后返回的还是一个可选型,所以我们可以继续?.方法名,这种就叫做可选型的链条(Optional
Chaining)
//返回值也是可选型,因为可能会转换失败,
errorMessage?.uppercaseString
5、a ?? b 相当于 a !=nil ? 1 : 2
6、隐士可选型
var name: String! =nil
//使用的时候必须赋值,不赋值会报错,无法执行
name = "not found"
"This message is "+name
二、数组
1、声明数组
//整型Array
var aArray = ["1","2","3","4","5"]
//相当于
var bArray: [String] = ["1","2","3","4","5"]
//swift 字符串双引号之内默认是String,哪怕只有一个字符,如果想要声明Character显示声明
var cArray: [Character] = ["1","2","3","4","5"]
//或者也可以写成
var dArray: Array = ["1","2","3","4","5"]
//或者
var eArray: Array<String> = ["1","2","3","4","5"]
2、NSArray
//array 和NSArray最大的区别是NSArray可以放不同类型的数据
var gArray: NSArray = ["1",2,"3","4","5"]
//array中放不同的数据
会默认把数组里面的类型转成object
即:Array[object]
var fArray: Array = ["1",2,"3","4","5"]
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift自定义iOS中的TabBarController并为其添加动画
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- Swift实现Selection Sort选择排序算法的实例讲解
- 简单分析Swift语言的一些基本特征
- 使用 Swift 语言编写 Android 应用入门
- 理解二叉堆数据结构及Swift的堆排序算法实现示例
- Swift与C语言指针结合使用实例
- Swift心得笔记之控制流
- 用Swift构建一个简单的iOS邮件应用的方法
- 苹果公司推出的新编程语言Swift简介和入门教程
- Swift实现iOS应用中短信验证码倒计时功能的实例分享
- 使用Swift代码实现iOS手势解锁、指纹解锁实例详解
- Swift 2.1 为 UIView 添加点击事件和点击效果
- 探讨Swift数组和字典
- Swift中的指针操作和使用详细介绍