在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前面主要是介绍swift语言中基本类型的用法,今天给大家介绍的是swift的结构体的用法,swift中结构体的用法和其他语言的用法,还有不太一样,不过您多敲几遍,就可以理解结构体,结构体在ios开发中是灰常重要的一部分,如果您很好的掌握结构体,在后面ios开发中,会理解的更加清楚。
一:结构体声明 格式: struct 结构体名 { } 说明: 1: struct 是定义结构体的关键字 例子 /* 1:struct 是结构体的关键字 2:student 结构体名称 3:student() 创建一个结构体变量 */ struct student { } var stu = student () //student() 表示创建一个结构体变量 二 :结构体声明 字段 定义结构体字段2种方法 struct 结构体名 { 第一种直接定义字段名 并且给字段名赋初始值 var 或 let 字段名 = 初始化值 第二种定义字段名并且指定字段类型 var 或 let 字段名:类型 } 例子 struct student { var age = 0 //直接定义一个字段名称,并且给字段名赋初始值 var name:String // 直接定义一个字符串字段name。 }
三 :结构体声明 字段的访问
例子 无参构造函数 struct student { var age = 0 //直接定义一个字段名称,并且赋初始值 var name:String // 直接定义一个字符串变量。 //定义 无参数构造函数 init() { name = "zs" age = 1 } } */ println("name=\(stu.name),age=\(stu.age)") 运行结果 name=zs,age=1 有参数构造函数
struct student { var age = 0 //直接定义一个字段名称,并且赋初始值 var name:String // 直接定义一个字符串变量。 //定义 有参数构造函数 init(Name:String,Age:Int) { self.name = Name //self 指的是当前结构体变量 self.name 当前结构体的变量的字段 self.age = Age } } /* 1;student (Name:"ls",Age:12) 创建结构体变量 系统会调动构造函数,并且创建结构体的参数于构造函数参数一致 2:student (Name:"ls",Age:12) 后面跟着的参数名称必须于构造函数参数变量名相同
1: 创建结构体的对象中对应参数必须和构造函数对应的参数一致 2: 如果构造函数中参数变量前加 _ 其对应创建对象的参数,不需要变量名 struct Point{ var x = 0.0 var y = 0.0 init(_ x :Double ,_ y :Double){ self.x = x self.y = y } } /* 1: init(_ x :Double ,_ y :Double) 构造函数中对应变量前面加 _ 其对应创建对象后面不需要变量名。 */ var p = Point(10.0,11.0) println("x=\(p.x) y=\(p.y)")
struct student { var age = 0 //直接定义一个字段名称,并且赋初始值 var name:String? // 直接定义一个字符串变量。 } /*------创建结构体变量赋初始值 var stu = student(age:12,name:"甘超波") 说明: 1:创建一个结构体变量stu,其中字段 age 的值为12 name 的值为 "甘超波" 注意点: student()括号后面跟着参数 必须和定义结构体的字段的顺序一致 错误写法 var stu1 = student(name:"甘超波",age:12) 因为 创建结构体的变量中初始化字段的顺序和定义结构体声明字段的顺序不一致 */ var stu = student(age:12,name:"甘超波") println("name=\(stu.name),age=\(stu.age)") 运行结果 name=甘超波,age=12
结构体 方法 1:结构体中可以直接存储方法 注意点: 结构体中方法不能直接修改字段的值,否则会报错 例子 struct student { var age = 0 //直接定义一个字段名称,并且赋初始值 //定义结构体方法 func GetAge() ->Int{ return age } } /* 注意点: 结构体中方法不能直接修改字段的值,否则会报错 */ var stu = student() stu.age = 12 println(stu.age) 运行结果 12 结构体属性 属性 主要是get set方法 例子 struct Point{ var x = 0.0 var y = 0.0 } struct CPoint { var p = Point() //声明属性 ,get set方法 var GPoint :Point{ get{ return p } set(newPoint){ p.x = newPoint.x p.y = newPoint.y } } } var p = Point(x:10.0,y:11.0) var CP = CPoint() CP.GPoint = p println("x=\(CP.GPoint.x),y=\(CP.GPoint.y)") 运行结果 x=10.0,y=11.0 系统提供常见结构体 有 Bool Int Float Double String 等 注意点:SWift语言中 String 是结构体类型
结构体值传递的时候都是
后面的文章,我回陆续把我学习到swift语言的知识写出来形成一个系列。由于是新语言,难免有不足,欢迎给我提出意见。也可以加我QQ 1436051108一起讨论,如果您有什么问题,也可以直接在QQ留言发给我,我看到之后第一时间回复您 最后总结一下。送上一直思维导图,作为文章的结束
|
请发表评论