Swift学习笔记2——基本类型和基本运算
来源:互联网 发布:玉米库存真实数据 编辑:程序博客网 时间:2024/05/30 04:34
基本类型
其实和C差不多,也就是那几个。多出来的是Tuple和可选类型这两个概念
数字类型
这里记录一下每个类型的大小。
Int 在32位机器上是Int32 ,在64位机器上是Int64. 除了Int之外,还有Int,Int8,Int16,Int32,Int64.
UInt在32位机器上是UInt32 ,在64位机器上是UInt64. 除了UInt之外,还有UInt8,UInt16,UInt32,UInt64.
Double 64位浮点数
Float 32位浮点数
Swift不支持数字类型之间的自动转换。必须显式手动转换。
var i: Int = 2_000 //这个表示2000var d: Double = 5.3var e = d * Double(i)
不同进制的前缀
十进制 没有
二进制 0b
八进制 0o
十六进制 0x
科学计数
1.25e2 代表 1.25乘上10的2次方
0xFp2 代表 15乘上2的2次方
typealias 关键字,用来个类型起别名
typealias ii = Int8var mm = ii.min //这里的ii代表了Int8
Boolean 类型
Swift和java一样,对boolean类型是强要求的,不能在if里面传一个整形用于判断。
新类型——元组(Tuple)
其实就是一群数据组合,可以将其解出来输出。注意的是tuple不只是两个元素,你可以自己扩展成多个元素。
var menu = ("apple", 20) //定义一个Tuplevar menu2 = (name: "banana", price:10) //可以在定义的时候指定元素名字let (name,price) = menu //解Tuple,如果某个元素不想要的话,用 _ 代替print(name, price) //输出 apple 20print(menu.0,menu.1) //不解Tuple直接输出print(menu2.name,menu2.price) //利用元素名字解Tuple
可选类型(Optionals)
当一个方法可以返回一个对象的时候,它有可能返回一个空值。比如将字符串转换为数字的方法。为了处理这种情况,有了可选类型。
可选类型表示一个数据,它可能有值,也可能为空。基本语法是在类型的后面加上问号 ?
比如下面的代码
var str:Stringprint(str) //这里报错说str没初始化但是如果将str改为可选类型,那么这就可以输出了
var str:String?print(str) //输出 nil
那怎么将一个可选类型转换为对应的类型呢?这里有个强制解包的概念,使用 ! 对可选类型解包。请看下面代码。 强制解包有个注意点,就是如果这个可选类型是nil的话,那么强制解包的语句会在运行时报错。
var str:String? = "fe"var s = str! //将str解包为s,但是如果str没有赋值的话,那么这句会在运行时报错print(s)
为了解决强制解包的时候,可选类型可能为nil的问题。if语句里面多了一个 Optional Binding 的概念。就是将可选类型解包后判断是否为nil,然后执行不同的分支代码
//因为没给str赋值,所以输出 str为空var str:String?if let s = str { print("str有值")} else { print("str为空")}
如果在编程中,我们可以确保可选类型一定不为nil的,那么每次要将可选类型解包都要加个 !,很麻烦。所以有了隐式可选类型,它是用 ! 代替了 ? 号。然后在需要将可选类型转换为对应类型的时候就不用加 ! 了
var str:String! = "string"var s = str
基本运算
一些和C完全一样的基本运算如下
加减乘除,负号,自增(++)自减(--),+=等, 判断大小之类(==,!=,>=...),三元运算符,逻辑运算(!,&&,||)
不一样的运算符
取模%,在C中,只能对整形进行运算,Swift中可以对浮点数进行运算。结果就是多出来的那部分
比如 7.1%2.5 得到2.1,因为7.1可以最多减去2个2.5,然后剩下2.1
范围运算符 ... 和 ..< 这两个运算符可以用在for里面。比如
//输出 1 2 3 包含最后一个元素3for i in 1...3 { print(i)}//输出 1 2 不包含最后一个元素3for i in 1..<3 { print(i)}
??
这是一个二元运算符,例子 a ?? b
它的意思是:如果可选类型a不是nil,那么解包a并返回解包值,如果a为nil,那么返回b
相当于 a != nil ? a! : b
- Swift学习笔记2——基本类型和基本运算
- 【Swift】学习笔记(二)——基本运算符
- Swift学习笔记(4)——基本运算符
- 基本运算符—Swift学习笔记(五)
- Swift 基本运算符和集合类型
- Swift学习笔记(3)--基本运算符
- swift学习笔记(2)-基本运算符
- Swift——基本运算
- Swift学习笔记之基本数据类型-基本运算符
- JavaScript学习笔记——基本类型和引用类型
- Python入门——基本运算符和基本类型
- The Swift Programming Language学习笔记(三)——基本运算符
- Swift 基本运算符(笔记)
- Swift笔记:基本运算符
- 黑马程序员——Swift学习笔记:声明与基本类型
- C++学习笔记(二)——变量和基本类型
- C++学习笔记——变量和基本类型
- C++学习笔记——变量和基本类型
- Android进阶之数据存储+Preferences
- opencv7-ml之统计模型
- 二维数组中行最大值中的最小值
- 动态选路协议
- CoCreateInstance of OLE control failed
- Swift学习笔记2——基本类型和基本运算
- 搜狗16招聘机试题 加密解密算法
- Js-函数回调
- 解决虚拟路径的上下文路径问题
- 字符串的压缩(面试题)
- apache集成php5.6方法分享
- linux上搭建完整go语言vim开发环境
- 单服务器发布多网站的问题
- iOS开发-------手势识别