结构体类型

基础数据类型都是结构体,如Int Float Bool等,是Swift自带的并且作为开发基础供开发者使用

在Swift中,结构体(Struct)和类类型(Class)非常相似,结构体是值类型,类是引用类型。

定义格式:

struct名称 : 协议... { 属性和方法 }

如:

struct Sword {

var length:Int = 11

var name:String = "hello world"

func description() {

print("this is a \(name) sword, has length \(length)")

}

}

//var a:Sword = Sword()

var a:Sword = Sword(length: 5, name: "hello")

print(a)

Swift中对于结构体的命名规范:结构体名首字母必须大写,其他字母遵循首字母大写---驼峰规则

结构体中可以包含静态属性、静态方法(类类型当然也是可以的)

枚举类型

Swift中使用enum和case定义枚举类型

初始化使用:类型名.枚举值的方式

赋值使用:.枚举值的方式

enum weekday {

case Sun, Mon, Tue, Wed, Thr, Fri, Sat

}

var day1 = Weekday.Sun //初始化操作

day1 = .Fri //赋值

用于switch语句中:

switch day1 {

case .Sun:

print("Sunday.")

case .Mon:

print("Monday.")

default:

print("Other.")

}

Swift中枚举并不局限于C语言中的无符号整型,可以设置不同类型的关联值,如

enum AccountName {

case mailAccountName(String), commonAccountName(String)

case telAccountName(Int)

}

var n1 = AccountName.mailAccountName("anm@neusoft.com")

var n2 = AccountName.commonAccountName("anm")

var n3 = AccountName.telAccountName(2234567)

用于switch语句

switch n1 {

case .mailAccountName(let name):

print("邮箱名:\(name)")

case .commonAccountName(let name):

print("用户名:\(name)")

case .telAccountName(let name):

print("手机号:\(name)")

}