写给小白的Swift基本运算符教程
2016-07-14 11:48
330 查看
最近在学习Swift,有一些自己的心得体会。今天从Swift基本运算符谈起,来谈谈我的学习心得,有兴趣的同学我们一起学习一起进步。
1.常量和变量
用let来声明常量,用var来声明变量。
let a = 10;
var b = 0;
可以理解为:声明了一个名字为a的常量,并给它赋值为10;
声明了一个名字为b的变量,并给它赋初始值为0;
可以在一行声明多个常量或变量:
var x = 0.0, y = 0.0, z = 0.0
2.类型标注
声明常量或变量的时候可以加上类型标注
var a : String
a = "hello"
声明一个类型为String,名字为a的变量
给变量a赋值
可以定义多个同类型的变量
var a, b, c:Double
3.打印输出
Swift 用字符串插值(string interpolation)的方式把常量名或者变量名当做占位符加入到长字符串中,Swift会用当前常量或变量的值替换这些占位符。将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义:
print("a 的值为\(a)")
4.注释
//这是单行注释
/*这是多
行注释*/
5.类型转换:Int转Double
let three = 3
let p = 22.11
let w = Double(three) + p
6.布尔值
let a = true
let b = false
7.元组
let htt = (404,"not found")
http404Error 的类型是 (Int, String),值是 (404, "Not Found")
可以将元组分解
let (code,message) = htt
print("this code is \(code)")
print("this message is \(message)")
如果只需要一部分元组,分解是可以把不需要的忽略,用_标记
let (code,_) = htt
可以用下标来访问元组中的元素
print("this code is \(htt.0)")
print("this message is \(htt.1)")
给元素命名,然后通过名字来获取这些元素的值:
let htt = (code:200,message:"ok")
print("this code is \(htt.code)")
print("this message is \(htt.message)")
8.可选类型
var a : Int? = 404 //a包含一个可选的Int
如果声明一个可选的常量或变量但是没有赋值,则默认为nil
var a : String?
9.隐式解析可选类型
一个隐式解析可选类型其实就是一个普通的可选类型,但是可以被当做非可选类型来使用,并不需要每次都使用解析来获取可选值。下面的例子展示了可选类型String和隐式解析可选类型String之间的区别
let a : String? = "hahaha"
let b : String = a! //需要惊叹号来获取值
let a : String! = "hehehe"
let b : String = a //不需要惊叹号来获取值
注意
如果一个变量之后可能变成nil的话请不要使用隐式解析可选类型。如果你需要在变量的生命周期中判断是否是nil的话,请使用普通可选类型。
10.错误处理
func canThrowAnerror() throws{
//这个函数可能抛出错误
}
一个函数可以通过在声明中添加throws关键词来抛出错误消息。当你的函数能抛出错误消息时, 你应该在表达式中前置try关键词。
do{
try canThrowAnerror() throws{
//没有错误抛出
}
//有错误抛出
}
11.基本运算符
· 赋值运算符=
·
算术运算符 +,-,*,/
加法运算符也可用作String的拼接:"hello,"+"world"
·
·
求余运算符 a % b
·
·
一元负号运算符:
·
let three = -3 //three 等于 -3
let a = -three //a 等于 3 ,因为“--3”
·
·
一元正号运算符:
·
let two = -2 //two 等于 -2
let a = +two //a 等于 -2
·
· 组合赋值运算符: +=,-=
· 比较运算符 ==,!=,>,<,>=,<=
12.三目运算符:它的形式是:问题 ? 答案一 : 答案二
let a = 10
let b = 12
let c = true
let d = a + (c ? a : b)
13.空合运算符: a ?? b
对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b。
表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。
a != nil ? a! : b //这是空合运算符的复杂写法
当可选类型 a 的值不为空时,进行强制解封(a!),访问 a 中的值;反之返回默认值 b。
let c = "hehe"
var d : String?
let e = d ?? c
print(e) //打印出来为 "hehe"
14.区间运算符
*闭区间运算符 :a...b
包含a到b(包括a和b)
for index in 1...5{
print(index)
}
*半开区间运算符:a..<b
包含a到b但不包括b
15.逻辑运算符
· 非!a
· 与a && b
· 或a || b
原文来自:简书/我叫万万
1.常量和变量
用let来声明常量,用var来声明变量。
let a = 10;
var b = 0;
可以理解为:声明了一个名字为a的常量,并给它赋值为10;
声明了一个名字为b的变量,并给它赋初始值为0;
可以在一行声明多个常量或变量:
var x = 0.0, y = 0.0, z = 0.0
2.类型标注
声明常量或变量的时候可以加上类型标注
var a : String
a = "hello"
声明一个类型为String,名字为a的变量
给变量a赋值
可以定义多个同类型的变量
var a, b, c:Double
3.打印输出
Swift 用字符串插值(string interpolation)的方式把常量名或者变量名当做占位符加入到长字符串中,Swift会用当前常量或变量的值替换这些占位符。将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义:
print("a 的值为\(a)")
4.注释
//这是单行注释
/*这是多
行注释*/
5.类型转换:Int转Double
let three = 3
let p = 22.11
let w = Double(three) + p
6.布尔值
let a = true
let b = false
7.元组
let htt = (404,"not found")
http404Error 的类型是 (Int, String),值是 (404, "Not Found")
可以将元组分解
let (code,message) = htt
print("this code is \(code)")
print("this message is \(message)")
如果只需要一部分元组,分解是可以把不需要的忽略,用_标记
let (code,_) = htt
可以用下标来访问元组中的元素
print("this code is \(htt.0)")
print("this message is \(htt.1)")
给元素命名,然后通过名字来获取这些元素的值:
let htt = (code:200,message:"ok")
print("this code is \(htt.code)")
print("this message is \(htt.message)")
8.可选类型
var a : Int? = 404 //a包含一个可选的Int
如果声明一个可选的常量或变量但是没有赋值,则默认为nil
var a : String?
9.隐式解析可选类型
一个隐式解析可选类型其实就是一个普通的可选类型,但是可以被当做非可选类型来使用,并不需要每次都使用解析来获取可选值。下面的例子展示了可选类型String和隐式解析可选类型String之间的区别
let a : String? = "hahaha"
let b : String = a! //需要惊叹号来获取值
let a : String! = "hehehe"
let b : String = a //不需要惊叹号来获取值
注意
如果一个变量之后可能变成nil的话请不要使用隐式解析可选类型。如果你需要在变量的生命周期中判断是否是nil的话,请使用普通可选类型。
10.错误处理
func canThrowAnerror() throws{
//这个函数可能抛出错误
}
一个函数可以通过在声明中添加throws关键词来抛出错误消息。当你的函数能抛出错误消息时, 你应该在表达式中前置try关键词。
do{
try canThrowAnerror() throws{
//没有错误抛出
}
//有错误抛出
}
11.基本运算符
· 赋值运算符=
·
算术运算符 +,-,*,/
加法运算符也可用作String的拼接:"hello,"+"world"
·
·
求余运算符 a % b
·
·
一元负号运算符:
·
let three = -3 //three 等于 -3
let a = -three //a 等于 3 ,因为“--3”
·
·
一元正号运算符:
·
let two = -2 //two 等于 -2
let a = +two //a 等于 -2
·
· 组合赋值运算符: +=,-=
· 比较运算符 ==,!=,>,<,>=,<=
12.三目运算符:它的形式是:问题 ? 答案一 : 答案二
let a = 10
let b = 12
let c = true
let d = a + (c ? a : b)
13.空合运算符: a ?? b
对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b。
表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。
a != nil ? a! : b //这是空合运算符的复杂写法
当可选类型 a 的值不为空时,进行强制解封(a!),访问 a 中的值;反之返回默认值 b。
let c = "hehe"
var d : String?
let e = d ?? c
print(e) //打印出来为 "hehe"
14.区间运算符
*闭区间运算符 :a...b
包含a到b(包括a和b)
for index in 1...5{
print(index)
}
*半开区间运算符:a..<b
包含a到b但不包括b
15.逻辑运算符
· 非!a
· 与a && b
· 或a || b
原文来自:简书/我叫万万
相关文章推荐
- Swift编程(二):UIViewController之间的传值以及闭包回调传值
- Swift cell的自适应高度
- swift NSDate
- 极光推送不成功,Not get deviceToken yet
- iOS开发 - Swift使用GCD实现计时器功能
- change swift compile version in xcode build settings
- Swift - 根据图片URL获取图片的大小
- Swift解析Json返回值为null的问题
- Xcode 8 的 6 大新功能一览
- swift2.2 - 高级运算符
- RxSwift - Why
- RxSwift - API
- iOS开发 - Swift使用GCD实现计时器功能
- Swift-构造函数(一)
- Swift String转Character数组
- swift -- 学习记录
- 自学swift (4) --- 一些超简单的东西
- Swift - 各种手势检测大全(UIGestureRecognizer及其子类)
- Swift - 触摸事件(点击,移动,抬起等)说明及用例
- 自学swift (3) --- 协议