【iOS】Swift数据类型、运算符、新增语句等小结
总结复习一些基本的东西,主要是与OC不同的以及新增的。
一、基本数据类型
Int、Float、Double、Bool、Character、String(首字母都大写)
Array、Dictionary、元组类型(Tuple)、可选类型(Optional)
指定数据类型:
- let a:Int = 10 //指定数据类型。 一般不需要指定,会自动判断类型。 (使用时需初始化)
1.1 整形
- //1.1整形
- let maxInt = Int.max //获取Int类型的最大值
- let minInt = Int.min
- let a1 = 10 //十进制
- let a2 = 0b1010 //二进制以0b开头
- let a3 = 0o12 //八进制以0o开头
- let a4 = 0xA //十六进制0x
1.2 浮点
- //1.2浮点型Float,Double
- let b1 = 0.123 //默认是Double
- let b2 = 0.123e3 //123.0
1.3 Bool ,跟上主流了。。。。
- //1.3Bool (不是YES/NO了)
- let c1 = true
- let c2 = false
1.4 元祖
- //1.4元组. 可以是N个任意类型的数据
- let tup1 = (age:1,name:"abc",hight:2,jj:0.1) //带元素名称
- let tup2 = (1,"abc",2,0.1) //省略元素名称
- var tup3:(Int,String) = (1,"haha") //指定类型. (指定类型后就不能再写元素名称了)
- var (t1,t2) = tup3 //直接弄2个变量接收元祖
- var (_,t3) = tup3 //只接收一个
二、数据的输出格式 && 类型转换 && 类型别名
简化了不少。
- //2.1可以在数字中增加额外的0或_, 增强可读写
- let d1 = 000123
- let d2 = 00123.0012300
- let d3 = 1_2_3
- //let d4 = _123 //错误
- //2.2类型转换
- let e1 = 1
- let e2 = 0.12
- //let e3 = e1 + e2 //错误, 类型不同不能直接相加
- let e3 = Double(e1) + e2 //类型转换
类型别名就相当于C中的typedef
- //2.3 类型别名 typealias
- typealias XNInt = Int
- let test:XNInt = 10
三、新加的几个运算符
3.1 范围运算符,上篇WWDC上用过
- //3.1 范围运算符..< ...
- for index1 in 1...10{ } //表示闭包[1 10]
- for index2 in 1..<10{ } //表示半闭合[1 10)
3.2 溢出运算符。(新增加的,可用来处理数据溢出的情况)
&+溢出加 &-溢出减 &*溢出乘 &/溢出除 &%溢出余
- let f1 = UInt.max
- //let f2 = x + 1 //这样写会上溢
- let f2 = f1 &+ 1 //溢出加. 值为0. 变为溢出后的最小值
- let g1 = 10
- //let g2 = g1 / 0 //会报错
- let g2 = g1 &/ 0 //值为0
- //let g3 = g1 % 0 //会报错
- let g3 = g1 &% 0 //值为0
3.3 一些注意的地方
非0即真这种C语言的东西遭淘汰!赋值更加灵活,且赋值没有返回值。
- let (x,y) = (1,2) //整体赋值
- //if(x = y){ } //这样写是错误的. 能防止将==写成=
- //if(10){ } //这样写也是错误的. 非0即真已经不适用.
- if(true){ }
四、流程控制语句
新增加for in语句,同时switch语句更加灵活。
4.1 循环for in
- for h1 in 1...10{
- println(h1)
- }
- for _ in 1..<10{ //不需要用到范围中的值时,直接忽略用_
- println("####")
- }
4.2 标签 (可用来跳出指定循环,了解即可)
- xn:
- for _ in 1...3 {
- println("***")
- for tmp in 1...5{
- println("###")
- //指定退出
- if tmp == 3{
- break xn
- }
- }
- }
4.3 Switch语句
1)与C语言中的不同. 不必每个case下写break,自动break
2)每个case后面必须有可执行语句, 否则会报错
3)每个case都可以匹配多个条件, 也可以填写一个范围
4)switch要保证处理所有的情况,一定加上default.
5)case还可以匹配元祖
- let score = 10
- switch score{
- case 0...3:
- println("差")
- case 4,5,6,7:
- println("良")
- case 8...10:
- println("优")
- default:
- println("超神")
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。