构造就是将结构体、类或枚举的实例准备好以便使用的过程。这个过程包括:

(1)为实例中的每个存储属性设置初始值。

(2)执行必要的准备和初始化工作。

实例的构造过程是通过构造器来完成的。

可以在结构体、类或枚举中提供自定义的构造器,从而自定义实例的构造过程。

结构体的自定义构造器的基本用法

/*
构造器就是名为init的特殊方法,其语法格式为:
init([形参列表]) {
构造体
}
与普通的方法相比,构造器没有关键字func和返回类型。 当通过“类型名([构造器的实参列表])”创建某个类型的实例时,系统会自动调用相应的自定义构造器,以完成实例的构造过程。
*/
struct SomeStruct {
var someProperty: String init(someProperty: String) {
self.someProperty = someProperty
}
} let someStruct = SomeStruct(someProperty: "SP")
someStruct.someProperty

类的自定义构造器的基本用法

/*
构造器就是名为init的特殊方法,其语法格式为:
init([形参列表]) {
构造体
}
与普通的方法相比,构造器没有关键字func和返回类型。 当通过“类型名([构造器的实参列表])”创建某个类型的实例时,系统会自动调用相应的自定义构造器,以完成实例的构造过程。
*/
class SomeClass {
var someProperty: String init(someProperty: String) {
self.someProperty = someProperty
}
} let someClass = SomeClass(someProperty: "SP")
someClass.someProperty

枚举的自定义构造器的基本用法

/*
构造器就是名为init的特殊方法,其语法格式为:
init([形参列表]) {
构造体
}
与普通的方法相比,构造器没有关键字func和返回类型。 当通过“类型名([构造器的实参列表])”创建某个类型的实例时,系统会自动调用相应的自定义构造器,以完成实例的构造过程。
*/
enum SomeEnum {
case someValue1
case someValue2
case someValue3 init(param: String) {
switch param {
case "sv1":
self = .someValue1
case "sv2":
self = .someValue2
default:
self = .someValue3
}
}
} SomeEnum(param: "sv2")

Swift构造的更多相关文章

  1. Swift 构造与析构

    前言 与 OC 一样,Swift 中也存在构造和析构过程.不同的是,OC 中的构造方法和析构方法只是普通的方法,而 Swift 中构造器和析构器是一种特殊的结构. 1.构造器 在 Swift 中,类或 ...

  2. Swift 构造过程

    构造过程是为了使用某个类.结构体或枚举类型的实例而进行的准备过程.这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务. Swift 构造函数使用 init() 方法. 与 Ob ...

  3. swift -- 构造/析构函数

     一.构造函数 //当一个类实例化一个对象时候,第一个调用的方法 class Student { //属性 var name = "ser" let age : Int //1.重 ...

  4. Swift 面向对象解析(二)

    接着上面一篇说的内容: 一 继承: 苹果继承与水果,苹果是水果的子类,则苹果是一种特殊的水果:这就是继承的关系,这个我们学OC的时候相信也都理解了,就不再描述定义了,下面的就叫继承: class ZX ...

  5. C++、Java、Objective-C、Swift 二进制兼容测试

    鉴于目前动态库在iOS App中使用越来越广泛,二进制的兼容问题可能会成为一个令人头疼的问题.本文主要对比一下C++.Java.Objecive-C和Swift的二进制兼容问题. iOS端动态库使用情 ...

  6. swift学习笔记之-构造过程

    //构造过程 import UIKit /* 构造过程(Initialization): 1.构造过程是使用类.结构体或枚举类型的一个实例的准备过程.在新实例可用前必须执行这个过程,具体操作包括设置实 ...

  7. Swift中类的两段式构造(类的构造过程)

    import Foundation /* 类的构造需要两个阶段: 第一阶段: 1.程序调用子类的某个构造器 2.为实例分配内存, 此时实例的内存还没有被初始化 3.指定构造器确保子类定义的所有实例存储 ...

  8. Swift 的类、结构体、枚举等的构造过程Initialization(下)

    类的继承和构造过程 类里面的全部存储型属性--包含全部继承自父类的属性--都必须在构造过程中设置初始值. Swift 提供了两种类型的类构造器来确保全部类实例中存储型属性都能获得初始值,它们各自是指定 ...

  9. Swift难点-继承中的构造规则实例具体解释

    关于继承中的构造规则是一个难点. 假设有问题,请留言问我. 我的Swift新手教程专栏 http://blog.csdn.net/column/details/swfitexperience.html ...

随机推荐

  1. 安卓开发笔记(二十一):Android Studio如何创建assets目录

    方法如下: 因为在用WebView控件查看安卓内置网页的时候,必须创建这个资源文件夹,将网页放置在这个目录之下,默认是没有assets这个目录的,这样才可以实现网页代码html.css.javascr ...

  2. Android自动解析html带图片,实现图文混排

    在android中,如何将html代码转换为text,然后显示在textview中呢,有一个简单直接的方法: textView.setText(Html.fromHtml(content)); 然而用 ...

  3. gitbook 入门教程之使用 gitbook-cli 开发电子书

    gitbook 生成电子书主要有三种方式: gitbook-cli 命令行操作,简洁高效,适合从事软件开发的相关人员. gitbook-editor 编辑器操作,可视化编辑,适合无编程经验的文学创作者 ...

  4. Java实现文本编辑时基于拼音输入的补全原型

    续前文Java实现"命令式"简易文本编辑器原型. 效果如下: 所在源码库同上文, 尚未和上文的编辑器右侧的命令区集成. 代码由How to show autocomplete as ...

  5. Java引用详解-StrongReference SoftReference WeakReference PhantomReference

    1 Java引用介绍 Java从1.2版本开始引入了4种引用,这4种引用的级别由高到低依次为:    强引用  >  软引用  >  弱引用  >  虚引用 ⑴强引用(StrongR ...

  6. [Inside HotSpot] C1编译器工作流程及中间表示

    1. C1编译器线程 C1编译器(aka Client Compiler)的代码位于hotspot\share\c1.C1编译线程(C1 CompilerThread)会阻塞在任务队列,当发现队列有编 ...

  7. 蓝牙协议中的SBC编解码原理和仿真

    一.SBC的原理 SBC是subband codec的缩写,中文叫做次频带编码,也叫子带编码.其基本原理是把信号的频率分为若干子带,然后对每个子带进行编码,并根据每个子带的重要性及特点分配不同的位数( ...

  8. Java进阶篇设计模式之四 -----适配器模式和桥接模式

    前言 在上一篇中我们学习了创建型模式的建造者模式和原型模式.本篇则来学习下结构型模式的适配器模式和桥接模式. 适配器模式 简介 适配器模式是作为两个不兼容的接口之间的桥梁.这种类型的设计模式属于结构型 ...

  9. 一个box-sizing: border-box和felx混合使用中遇到的问题

    之前在项目中遇到一个布局上很趣的问题(也可能是笔者才疏学浅,哈哈).布局大概是这样的: 外层包裹器:采用flex布局,并指定内部子弹性盒子元素水平显示 侧边栏:flex盒子的子元素,可收起和展开.展开 ...

  10. T4模板简单了解

    T4模板基础 T4即为Text Template Transformation Toolkit,一种可以由自己去自定义规则的代码生成器.根据业务模型可生成任何形式的文本文件或供程序调用的字符串 在VS ...