Swift中类与结构的初始化方法
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"Swift中类与结构的初始化方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Swift中类与结构的初始化方法"吧!一,结构的初始化st
千家信息网最后更新 2025年01月18日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安全错误
数据库的锁怎样保障安全
网络技术任务书
C 直接调用数据库文件
没法连接到服务器怎么办
泽测网络技术工作室
网络安全与网络优化基本常识
厦门服务器咋骗
安徽专业软件开发哪家实惠
默克尔访华 网络安全
康创互联网科技
网络安全基础20年4月第一版
松江区智能软件开发推荐
丽水云软件开发工具
华为监控智能管理服务器
服务器多线程的作用
数据库有哪四种格式
网络基础在软件开发中的作用
天心erp数据库
绍兴通信网络技术收费标准
海曙嵌入式软件开发项目
南京天渔互联网科技有限公司
周村设备配件工具软件开发报价
桓台成本管理软件开发公司
转发QQ日志显示服务器忙
哪个部门发布网络安全预警
上海潮流软件开发设施品质保障
山东电商软件开发价钱
软件开发规范测试题
数据库软件是做什么用的
网络安全代码链接
网络安全钥匙是