Swift基础3.1——构造函数

Swift之构造函数 Swift之可选型 可选型定义 通过在类型后面加? 对可选型的变量或常量赋值,要么给一个实际的值,要么给nil var name:String?//name是一个String类型的可选型 var age:Int?//age是一个Int类型的可选型 age = nil age = 18 解包 取出可选型的值 print(age)//怎么把外面这个壳子去掉 //方式一:强制解包,! 局限:只有... 阅读详情

构造函数是一种特殊的函数,主要用来在创建对象时初始化对象,为对象成员变量设置初始值,在 OC 中的构造函数是 initWithXXX,在 Swift 中由于支持函数重载,所有的构造函数都是 init

  • 非 Optional 属性,都必须在构造函数中设置初始值,从而保证对象在被实例化的时候,属性都被正确初始化
  • 在调用父类构造函数之前,必须保证本类的属性都已经完成初始化
  • Swift 中的构造函数不用写 func

子类的构造函数

  • 自定义子类时,需要在构造函数中,首先为本类定义的属性设置初始值
  • 然后再调用父类的构造函数,初始化父类中定义的属性
/// 工程师类
class Engineer: Person {

    var no: String

    override init() {
        no = "001"

        super.init()
    }
}

小结

  • 先调用本类的构造函数初始化本类的属性
  • 然后调用父类的构造函数初始化父类的属性
  • super.init() 必须放在本类属性初始化的后面,保证本类属性全部初始化完成

Optional 属性

  • 将对象属性类型设置为 Optional

class Person: NSObject {
    /// 姓名
    var name: String?
    /// 年龄
    var age: Int?
}
  • 可选属性不需要设置初始值,默认初始值都是 nil
  • 可选属性是在设置数值的时候才分配空间的,是延迟分配空间的,更加符合移动开发中延迟创建的原则

Swift学习笔记之构造器重载 Swift 将为所有属性已提供默认值的且自身没有定义任何构造器的结构体或基类,提供一个默认的构造器。这个默认构造器将简单的创建一个所有属性值都设置为默认值的实例。 立即下载

相关推荐

顶级的FDE需要拥有哪些技能?

上一篇《》说明白了什么是FDE。这一篇回答下一个问题:要成为顶级 FDE,需要哪些具体的技能?要想弄清楚FDE应该有哪些能力,就得先搞清楚FDE要完成哪些工作。同时,有一点是我们要密切关注的:现在是大模型时代,所以我们不能脱离大模型讨论FDE的能力。我们可以把FDE在客户现场需要完成的工作分为四类:破冰与诊断、价值交付、项目与预期管理、沟通与影响。另有两项元能力贯穿始终。以下按工作类别逐一拆解,每项能力配 1 / 3 / 5 分标准,方便对照自评。文末有完整打分工具链接。

mydeman的学习日志 260

Swift入门基础:构造函数、下标、计算属性

介绍Swift入门基础,构造函数,下标和属性的概念

专注于苹果IOS开发和最新资讯 1107

国内优秀MES开源框架

一套springboot 开源框架 代码标准规范化。 界面展示 演示地址 http://wangziyangmes.pzzd.xyz 用户名admin 密码123 系统管理 工艺管理 计划管理 物料管理 *用户管理* *工艺路线管理* 工单下达...

q707231019的博客 2万+

Swift 简单构造函数

Swift简单构造函数1.默认与自定义构造函数2.指定与便利构造函数 1.默认与自定义构造函数 不给存储属性赋值,报错定义类属性不报错,结构体的实例时必须为所有的存储属性设置一个合适的初始值 要不报错有3种可选方式: 1 可选型 2 直接定义的时候初始化,直接 = 3 构造函数中初始化 知识点一:构造函数的作用 构造函数用于初始化一个类的实例(创建对象) 默认情况下载创建一个类时,必然会...

qq_45917896的博客 628

RAG优化知识库检索(4):混合检索技术

混合检索技术在RAG(检索增强生成)系统中的应用显著提升了检索效果。本文探讨了语义检索与关键词检索的优缺点,指出两者在语义理解和精确匹配方面的互补性。通过结合BM25与向量检索,混合检索系统能够更全面地捕捉文档的相关性。文章详细介绍了并行检索、级联检索、稀疏-密集混合表示等多种结合方式,并探讨了权重调整策略,如线性组合、动态权重调整和排序融合算法。此外,稀疏-密集混合检索架构的设计和实现方案也被深入分析,展示了如何通过结合不同检索方法的优势,提升RAG系统的检索质量和效率。

分享一些感兴趣的技术方面 2073

Win11 24H2共享访问被禁?深入聊聊SMB签名和‘不安全的来宾登录’那点事

本文深入解析Win11 24H2共享访问故障,探讨SMB签名的安全机制与‘不安全的来宾登录’问题。提供从注册表修改到组策略配置的多层次解决方案,特别针对家庭网络和打印机共享场景给出实用建议,帮助用户在安全与便利之间找到平衡。

weixin_42556197的博客 565

关于swift中的构造函数

son' has no initializers->'Person' 类没有实例化器s 原因:如果一个类中定义了必选属性,必须通过构造函数为这些必选属性分配空间并且设置初始值 重写父类的构造函数 /// `重写`父类的构造函数 override init() { } 提示错误Property 'self.name' not initialized at i...

weixin_30481087的博客 257

RK3588开发笔记-麦克风阵列多pdm通道合并成一个声卡

在音频设备的开发中,特别是在多通道音频数据处理场景中,如何将多个PDM(Pulse Density Modulation)通道整合成一个声卡设备,是一个非常具有挑战性的问题。RK3588芯片作为一款性能强大的平台,提供了对多个音频通道的支持。本文将介绍如何在RK3588上将多个PDM通道合并成一个麦克风阵列声卡,从而在Linux系统下统一管理和使用,提高多通道音频的同步性。在本文中我们主要介绍使用2通道回采+4通道mic声音采集构成一个6通道声卡,加以回声消除实现一个多麦克风阵列。

flypig has a dream! 1926

Swift构造函数

构造函数基础     构造函数是一种特殊的函数     主要用来在创建对象时初始化对象     为对象成员变量设置初始值     在 OC 中的构造函数是 initWithXXX,在 Swift 中由于支持函数重载,所有的构造函数都是 init      重载 overload 的概念:          函数名相同     参数类型和个数不同

weixin_37664648的博客 381

python实现纵横向拉开档次法 (附完整源码)

python实现纵横向拉开档次法 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 778

基于江协科技STM32创建HAL库工程模板

基于江协科技STM32入门教程创建的HAL库工程模板

2401_82728381的博客 1133

Swift3.0 -- 构造函数

// // ViewController.swift import UIKit /** 在swift中,同一个项目中(同一个命名空间),所有的类默认都是共享的,不需要引用,可以直接访问,不需要import 所有对象的属性 var,也可以直接访问到 */ class ViewController: UIViewController { override func viewDi

viiimaus的博客 1166

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Swift 4 构造函数,便利构造函数与KVC及运行时访问属性小结

1.命名空间 在同一个项目中,所有的类都是共享的,可以直接访问,不用import 不同的项目中有相同的类,是可以共存的 2.构造函数 是一种特俗的函数 主要用来在创建对象时,初始化对象 给对象的成员变量设置初始值 Swift支持函数重载,所有构造函数都是init 作用: 分配空间,设置初始值 ** 注意 Object-c的初始化,是从类继承关系链,从父类开始逐级向子类初始化...

高级软件开发工程师--周玉的博客 1353

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Swift之默认与自定义构造函数

引入:不给存储属性赋值,报错 定义类属性不报错,结构体的实例时必须为所有的存储属性设置一个合适的初始值 要不报错有3种可选方式: 1 可选型 2 直接定义的时候初始化,直接 = 3 构造函数中初始化 知识点一:构造函数的作用 1、构造函数用于初始化一个类的实例(创建对象) 2、默认情况下载创建一个类时,必然会调用一个构造函数 3、即便是没有编写任何构造函数,编译器也会提供一个默认的构造函数 知识点二:默认构造函数 1、使用 init 关键字来写, 2、构造函数没有func修饰 3、构造函数默认完成调用 .

weixin_48569975的博客 297

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Swift构造函数与析构函数的深度解析(18)

Swift为所有值类型提供了默认的成员逐一构造器,即使没有显式定义构造函数。以下是结构体的内存布局与构造过程分析:

Android开发领域创作者 844

Swift之便利构造函数

1.默认情况下,所有的构造方法都是指定构造函数 Designated,那么什么是所谓的便利构造函数呢? 由convenience关键字修饰的构造方法就是便利构造函数. 2.便利构造函数的特点? a.可以返回nil b.只有便利构造函数中可以调用 self.init() c.便利构造函数不能被重写或者super 如下面例子; /// `便利构造函数` /// /// -

shiios的博客 1748

swift 构造函数(必选参数)

构造函数-01-必选参数  构造函数:给属性分配空间 alloc 初始化数值 init/initWithXXX  Swift 中只有 init  分配空间是给属性分配空间 class Person: NSObject {     // 1. Class 'Person' has no initializers     // Person 类 没有构造器         如

dingwenchao456的博客 656

Swift基础 构造函数

指定构造函数struct Person { init() { // 构造函数 } } class Person { init() { // 构造函数 } }如果在结构体中定义了属性,不用自己写构造函数,默认会有一个逐一成员构造函数。 如果在类中定义了属性(非可选),自己就得在构造函数对属性进行初始化赋值,构造函数必须写。便利构造器在S

JohanMan的博客 486

swift重载构造函数

在使用swift重载构造函数的时候,需要注意。 // 1 构造函数的目的:给自己的属性分配空间并且设置初始值 // 2 调用父类构造函数之前,需要先给本类的属性设置初始值 // 3 调用父类的'构造函数',给父类的属性分配空间设置初始值NSObject没有属性,只有一个成员变量'isa' // 4 如果重载了构造函数,并且没有实现父类init方法,系统不再提供init()构造函数(默认是会有...

征战无悔人生 424

Swift语法_13_指定构造函数和便利构造函数

所谓类的指定构造函数就是一般的构造函数,使用init来定义。 便利构造函数(convenien)使用convenience关键字在init之前,创建的构造函数称为便利构造函数。 规则:1)指定构造函数必须调用其直接父类的指定构造函数;即:在创建子类指定构造函数时,其中,必须包含对...

chennan123987的博客 241

Swift3.0学习笔记-Initialization

Swift3.0 构造函数, 介绍 init / convenience init / init? / init! / required init 的用法

brycegao321的博客 2219

Swift——convenience(便利构造函数)和类方法

import UIKit extension UIButton{ //swit中类方法是以class开头的方法,类似于oc中+开头的方法 class func createButton(imageName:String,bgImageName:String)->UIButton{ let btn=UIButton() b

cym_bj 9569
上一篇: Swift基础2.1——闭包
下一篇: Swift基础3.2——重载构造函数
Jack-Zeng
博客等级 码龄11年 9粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值