黑马程序员——Swift学习笔记:声明与基本类型

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


参考书:《Swift基础教程》Boisy G.Pitre 著

一、声明和类型推导


Swift一般的声明格式如下:
let(常量)/var(变量) 名称:类型=取值

例如 
let a:Int=60
var x:Float=80.0
此时a为常量,在声明的时候被初始化,该值不能被更改
此时b为变量,在声明的时候被赋值,b可以被重新赋值成类型相符的值

Swift具有类型检查和类型推导的机能,使得定义常量和变量变得更加简单安全
例如
let b=50
var real=57.3
var char=“S”
var sentence=“String”
Swift会根据变量被初始化值的类型来判断变量的类型,b被指定为整型,real被指定为Double型,char为字符串型,sentence为字符串型

★注意:因为苹果的设备和操作系统进入了64位时代,因此浮点数的默认类型为Double型,而由于Swift中的字符和字符串都使用双引号(这与很多其它的编程语言不同),在不指定格式的情况下,默认的类型为字符串类型。如果想使用Float类型或者字符型(Character型被认为是一种特殊的String类型),就需要使用标准的格式声明。

★常量类型存在的意义:常量的设计并不是多此一举,因为Swift的编译器底层会优化储存,因此常量占据的内存空间会比变量小许多,原则上能用常量的数值就用常量。

★注意:常量在声明的时候一定要初始化,原则上变量也是。

二、常见的类型


逻辑:
Bool:取值为true或者false

有符号整数:
较大的数字:Int、Int32、Int64:32位或者64位的值
较小的数字:Int8、Int16:8位或者16位的数字

非负整数:
较大的数字:UInt、UInt32、UInt64:32位或者64位的值
较小的数字:UInt8、UInt16:8位或者16位的数字

小数:
Float、Double:32位或者64位的小数

字符:
Character、String:单个字符或者字符串,使用双引号括起来表示其值

三、查看数值类型的上下限


由于数值类型具有上限和下限,因此Swift提供开发者随时查阅上限和下限的方法,以便及时排除数据溢出的错误

上限:
类型名.max

下限:
类型名.min

例如:
println(Int.max)
println(UInt.min)

四、类型转换


一般情况下,类型转换只能在相近的类型发生,且转换的方向是单向的

Int→Float→Double→String
Character→String

转换的格式:
目标的类型名(需要转换的变量)

如果希望逆向转换,通常需要使用某些类型中特定的方法
例如
let s=”123“
var stringToInt=s.toInt()
因为在逆向转换时,经常需要检查被转换的值对于目标的类型而言是不是例外的值,需要做更多的复杂的检查,因此通常要使用各个类型的特殊方法进行。 并且,转换成功之后的值一般都是可选类型。

五、字符串的拼接和比较


Swift的字符串增加了新特性

使用加号可以把多个字符串的常量或者变量拼接在一起

let hello=”Hello“
var world=”World“
var sentence=hello+” “+world+”!!!!“

此时sentence的值为Hello World!!!!

★:Character类型也可以用于拼接,但是要先转换成String类型

与C语言要使用strcat(),Objective-C要使用Foundation类NSString的方法stringWithFormat不同,Swift使用加号就可以完成拼接,使代码更加简洁

使用数值类型的比较符号可以直接比较字符串,Swift从左至右逐个比较字符串的ASCII值来判断字符串的大小

与C语言要使用strcmp(),Objective-C要使用Foundation类NSString的方法compare不同,Swift的字符串比较代码简单易懂

六、数学运算符


Swift的数学运算符具有新特性

加号和减号:除了可以用于计算,还可以用作单目运算符表示正负

取余运算:可以用于Int类型 和Double类型

七、特殊的数值表示


Int:
二进制:0b开头的0和1组成的数字
八进制:0o开头的0~7组成的数字
十六进制:0x开头的数字
具有分隔符的大型数字:数值可以用下划线进行分隔,Swift在处理数值时会忽略下划线
例如:
let fiveMillion=5_000_000

Double:
科学计数法:有效数字e指数部分
e表示以10为底的指数
例如:
                 -10
4.434×10
表示为:
4.434e-10

八、数值类型的比较


Swift支持多种数值类型的比较,Swift根据各个数值的字面的值进行比较,与数学意义的比较一致

九、值的显示


Swift使用嵌入表示法\(常量名或变量名)来表示值。Swift的print和println方法支持这样的表示,同时也支持使用嵌入表示法拼接的字符串的赋值, 无需printf和NSLog中的格式指定和指定变量输出的顺序

例如
let subject=”It“
let verb=”is“
let sentence= "\(subject) \(verb) a sentence."
此时sentence的值为It is a sentence.

十、类型别名


Swift允许给常用的类型起别名,以提高代码的可读性
格式:
typealias 类型的别名 = 原来的类型

★注意:为增强代码的可读性,为类型起别名后一定要准备相应的文档说明,并与相关的开发人员共享文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值