Swift数据类型–布尔和字符串
在上一篇中所介绍的都是在C语言中存在的、相似的数据类型(字符串类型我会单独介绍),下面我们看一些C语言中没有或者区别较大的。
1. 布尔类型
布尔类型,即BOOL的音译,在swift中用于条件语句的判断条件,然而和其他高级语言不同的是:直接在swift中使用1或者0当作布尔值,编译器会抛出错误。swift中布尔值只有两种:true和false,在需要使用布尔值的时候可以直接使用这两个布尔值。
var sampleValue: Bool = true
if sampleValue {
print("Hello world!\n")
}
也可以使用布尔只的description属性进行打印
print(true.description)
2. 字符、字符串
在swift中,使用 Character和String来存储字符相关的数据,其中Character是字符类型,而String是字符串类型。
2.1 字符类型(Character)
Swift语言是全面支持Unicode的语言,所以每个字符代表一个Unicode字符,我们可以这样定义:
var star: Character = "*"
注意,上面定义中显式地声明了Character,这在声明Character变量的时候是必不可少的操作,否则swift会将变量自动判断为String类型。
字符型变量只允许定义单个字符,如果写成了var star: Character = "***"
,会引起编译器报错。
2.2 字符串(String)
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
在Swift中,字符串与Objective-C中的NSString进行了无缝整合,在程序中可以使用String直接替换NSString。String的声明方式如下:
var emptyString: String//声明为字符串类型(空的字符串)
var sentence = "成就一番伟业的唯一途径就是热爱自己的事业。如果你还没能找到让自己热爱的事业,继续寻找,不要放弃。跟随自己的心,总有一天你会找到的。"//被推断为字符串类型
但正是由于swift全面支持Unicode,是的我们并不能确定给每一字段的字长是多少。其中最受到影响的就是我们不能直接把String当作一个字符数组那样通过下标访问指定的字符。
2.2.1 字符串插值
swift支持字符串差值,可以在字符串中插入常量、变量、字面量和表达式,而不用经过占位符的转换(是不是很方便呀),实现如下:
let pi: Double = 3.1415926
let d: Double = 6
var description = "圆周率的值为\(pi),直径为\(d)的圆的周长约为\(d*pi)"
println(description)
运行这一段程序则会得到输出:
圆周率的值为3.1415926,直径为6.0的圆的周长约为18.8495556
其实字符串插值就是在一个字符串里面,通过\()
在括号里填入想填进去的内容,编译器会自动将其转换为字符串数据并且插入在字符串中。
2.2.2 字符串连接
连接两个字符串,和python类似,可以直接使用加号进行连接,也就是说:
var h = "Hello "
var w = "world!"
var hw = h + w
println(hw)
我们也可以直接用+连接两个新的字符串,比如说
var hw = "hello" + "world!"
2.2.3 字符串比较
比较字符串可以使用 == 操作符,如果两个字符串包含字符、顺序相同,则返回结果为true,否则返回false。