Swift基础知识补充(二)

来源:互联网 发布:网络管理需求分析 编辑:程序博客网 时间:2024/06/01 08:59

  1、字符

  在Objective-C中,字符是放在单引号('a')之间的。但是,在Swift中不能用这种方式表示。Swift中无论是字符还是字符串,都必须使用双引号("a"和"abc"):

let c: Character = 'a'  // 编译错误// 字符类型也需要放在双引号之间let d: Character = "d"  // 正确的写法let e: Character = "ef"  // 编译错误,字符类型的赋值只能有一个字符// 字符串类型放在双引号之间let str: String = "LeBron James"

  另外,如果想声明一个字符类型,不能使用类型推断,必须明确指明它是Character,否则编译器会自动将其推断为String类型。也就是说,下面这种写法,编译器会把它当成String类型:

let a = "a"  // 编译器推断其为字符串类型

  2、字符串

  在Foundation框架中有两种字符串类型,分别是Swift中的String类型,以及Objective-C中的NSString类型。String是结构体,属于值类型,而NSString是一个类,它是引用类型,在使用的时候要格外注意。

  在Swift中,字符串的拼接,除了可以使用+、+=和append()方法之外,其实还可以使用()进行操作:

let num = 10let result = "\(num)加\(3.14)等于\(Int(3.14) + num)"print(result)  // 13

  \()被称为字符串插值,其功能非常强大,几乎可以将任何数据类型拼接起来,尤其是在通过print()函数进行打印的时候,用起来非常的方便。

  字符串和整型一样,是可以进行相等和大小比较的,比较的依据是Unicode字符编码的值。比如说:

let kingJames = "LeBron James"let flash3 = "Dwyane Wade"// 进行大小比较if kingJames > flash3 {    print("谁大谁尴尬!")} else {    print("比较的是字符串的Unicode编码值")}

  在Swift中,字符类型(Character)和字符串类型(String)都是值类型,只能用==或者!==比较是否相等;而NSString字符串是引用类型,需要使用===或者!==进行比较。

  3、switch语句

  在Swift中,switch语句的条件表达式可以是整型、浮点型、字符(串)、和元组等类型,并且判断语句case后面的值可以是一个,也可以是多个,甚至还可以是连续的范围:

// 1.switch的基本用法// switch后面的小括号可以省略;// switch后面的break也可以省略,系统会帮你添加)let sex = 0  // sex为0表示男性,sex为1表示女性switch sex {case 0 :    print("性别为男性")  // break可以省略,系统会默认帮你添加    fallthrough  // 如果希望在switch中的case后面产生穿透,只需添加关键字fallthroughcase 1 :    print("性别为女性")default:    print("亚文化性别")}// 2.case后面可以判断多个条件,多个条件以逗号进行分割。let asian = 1  // 0表示中国人,1表示韩国人,2表示日本人switch asian {case 0, 1, 2 :  // 多个判断条件以逗号分开    print("亚洲人!")case 3 :    print("非洲人!")default :    print("其它洲人")}// 3.switch中可以判断浮点型(OC中不能判断浮点型)let pi = 3.141switch pi {case 1.414 :    print("根号2")case 1.732:    print("根号3")case 3.141:    print("圆周率")default:    print("其它什么 
原创粉丝点击