Swift中类与结构的初始化方法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"Swift中类与结构的初始化方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Swift中类与结构的初始化方法"吧!一,结构的初始化st
千家信息网最后更新 2026年11月02日Swift中类与结构的初始化方法
本篇内容主要讲解"Swift中类与结构的初始化方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Swift中类与结构的初始化方法"吧!
一,结构的初始化
struct FirstStruct{ let b:Int let c:Int init() { b = 2 c = 3 } } let fs = FirstStruct()解析:这个结构中b,c这两个存储属性并未赋初值,而是在init初始化器(相当于Java中的构造函数)中赋初值。
二,结构的初始化
struct SecondStruct{ let b:Int let c:Int } let ss = SecondStruct(b:2,c:3)解析:结构中,编译器会自动生成memberwise的初始化器,因此在调用结构时必须传入初始化值。
三,结构中初始化错误示例
//struct ThirdStruct{// let b:Int// let c:Int// init() {// b = 0// }//}//let ts = ThirdStruct(c:3)注意:结构中声明了初始化器,编译器将不会给我们添加memberwise的初始化器,(原理和Java的空构造函数一致)上面这个例子是不能通过编译的。
四,结构中init可以通过self关键字调用其他的init
struct FourthStruct{ let b:Int let c:Int init() { self.init(b:2) } init(b:Int){ c = 2 self.b = b } } let fos = FourthStruct()五,类初始化错误示例
//错误示例 //class SecondClass{ // let b:Int // let c:Int //} //let sc = SecondClass(b:2,c:3)解析:类里面也可以通过声明init初始化器,若不提供初始化器,编译器不会提供默认的初始化器
六,类的(Designated init)初始化器
class Parent2{ var name:String var height:Int init(name:String,height:Int){ self.name = name self.height = height } } let p2 = Parent2(name:"zs",height:168) p2.height p2.name解析:没有特殊的修饰符的init就是专门的(Designated init)初始化器,主要的作用就是确保所有的存储属性得到初始化
七,Designated init
一般只有一个,可以有多个,根据你调用时赋值的不用而调用不同的初始化器
class Parent3{ var name:String var sex:String init(name:String,sex:String){ self.name = name self.sex = sex } init(name:String){ self.name = name sex = "男" } } let p3 = Parent3(name:"zs",sex:"女") let p4 = Parent3(name:"ls") p3.sex p4.sex八,类的便利(convenience)初始化器
class Parent3{ var name:String var sex:String init(name:String,sex:String){ self.name = name self.sex = sex } convenience init(name:String){ self.init(name:name,sex:"男") } convenience init(){ self.init(name:"zs") }}let p3 = Parent3(name:"zs")let p4 = Parent3()p3.sexp4.sex解析:通过在初始化器前声明convenience关键字可以声明一个便利初始化器,它的作用是方便创建对象时使用,但它必须直接或间接调用专门初始化器
九,子类的专门初始化器
子类的专门初始化器必须调用父类的专门初始化器,子类不能调用父类的便利初始化器
class Parent4{ var name:String var sex:String init(name:String,sex:String){ self.name = name self.sex = sex } convenience init(name:String){ self.init(name:name,sex:"男") } } //----------------------------------------------- class Child4:Parent4{ var age:Int init(age:Int) { self.age = age //super.init(name: "ls")错误示例 super.init(name: "zs",sex:"妖") } convenience init(){ self.init(age:12) } } let c4 = Child4() c4.name到此,相信大家对"Swift中类与结构的初始化方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
结构
方法
示例
错误
编译
子类
编译器
作用
关键
关键字
内容
函数
初值
可以通过
就是
属性
存储
学习
不同
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网
互联网科技公司排名
互联网科技有限公司经营范围
互联网和科技创新
互联网为科技
北京互联网科技
智网互联网科技
小马过河互联网科技
互联网科技大会
云创客互联网科技公司
浙江互联网科技研学营
哈尔滨屹滨互联网科技有限公司
电子科技大学互联网创业大赛
合肥互联网科技公司公章图片
互联网公司高科技产品
互联网与数字科技关系
福建互联网展示科技馆设计
盐城市攀科互联网科技有限公司
保山浩联互联网科技有限公司
中国主要互联网科技公司
深圳九邦互联网科技有限公司
广州百单互联网科技有限公司
奇酷互联网科技
互联网未来科技
百单互联网科技有限公司
互联网科技素材视频竖屏
恒银科技与互联网金融
欧洲十大科技互联网公司
云南省自由互联网科技有限公司
广州智享互联网科技