Swift_学习笔记_枚举和结构体

swift学习笔记3——类、结构体、枚举 如果你不想在重写版本中的 getter 里修改继承来的属性值,你可以直接通过super.someProperty来返回继承来的值,其中someProperty是你要重写的属性的名字。你可以重写继承来的实例属性或类型属性,提供自己定制的 getter 和 setter,或添加属性观察器使重写的属性可以观察属性值什么时候发生改变。存储型属性的值不能处于一个未知的状态。当你用子类的非可失败构造器重写父类的可失败构造器时,向上代理到父类的可失败构造器的唯一方式是对父类的可失败构造器的返回值进行强制解包。 阅读详情

枚举

  • Swift中的枚举除了具有基本的类型限制和别名使用外,还可以进行继承以及遵守协议。

枚举的声明

  • 枚举的声明需要关键字:enum
  • 所有的枚举值可以被写在一行
enum Toward1{
    case Forward
    case Back
    case Left
}
enum Toward2{
    case Forward,Back,Left
}

枚举的值

enum Toward1:Int{
    case Forward = 1 // 枚举值进行赋值
    case Back
    case Left
}
print(Toward1.Forward.hashValue) // 0 枚举的原始值 
print(Toward1.Forward.rawValue) // 1枚举的赋值
print(Toward1.Back.rawValue) // 2
  • 如果枚举没有进行赋值,则枚举只有原始值,从0开始
  • 如果枚举赋值类型为Int类型,则会逐渐递增
  • 如果枚举值赋值类型为String,如果没有进行赋值,则赋值为case值
enum Toward3:String{
    case Forward
    case Back = "second"
    case Left
}
print(Toward3.Forward.hashValue) // 0
print(Toward3.Forward.rawValue) // Forward 
print(Toward3.Back.rawValue) // second
print(Toward3.Left.rawValue) // Left

枚举的使用

结构体

结构体的声明

  • 结构体的声明需要struct关键字
  • 在进行结构体声明时需要声明属性类型,如果不声明属性类型,则需要赋初值,便于编译器进行类型判定

结构体的构造方法

struct Student{
    var name:String
    var sex:String
    var age:Int
}
struct Student1{
    var name = "LI"
    var sex = "GIRL" 
    var age = 20
}
  • 空参构造方法
// 如果结构体声明时没有初始值,则不能用空参构造方法
var wang = Student1()
  • 全参构造方法
var wang = Student(name: "wang", sex: "man", age: 20)

结构体的赋值和取值

  • 取值可以使用点语法进行取值
struct Student1{
    var name = "LI"
    var sex = "GIRL"
    var age = 20
}
var wang1 = Student1(name: "wang", sex: "man", age: 20)
print(wang1.name) //wang
wang1.name = "Li"
  • 结构体赋值
wang1.name = "Li"
print(wang1.name) // Li

结构体的嵌套

  • 对于嵌套的结构体进行访问,访问内层结构体属性可以采用多层点语法进行访问
struct Teacher{
    var name = "Li"
    var age = 24
}
struct Student{
    var name:String
    var age:Int
    var teacher:Teacher
}
var Lilei = Student(name: "lilei", age: 20, teacher: Teacher(name: "wang", age: 30))
print(Lilei.teacher.name) //wang

结构体的值拷贝类型

  • 结构体是值拷贝类型(相对于引用类型而言),即对其中一个实例的属性进行修改,并不会影响另外一个实例的属性
var lilei2 = Lilei
lilei2.name = "lilei2"
print(Lilei.name) // lilei
print(lilei2.name) // lilei2
Swift学习笔记- (三) 类型核心原理典型应用场景Set哈希表(元素唯一)去重、集合运算字典哈希表(键值对)快速查找映射关系可选类型Optional枚举安全处理空值枚举可关联值的类型安全状态机状态管理、错误处理元组轻量级复合类型临时组合多个值// 存储属性// 计算属性// 方法// 变异方法(修改自身属性)// 使用。 阅读详情

相关推荐

Bybit面经

这段总结描述了求职者在Bybit面试过程中的经历和相关问题,包括面试内容、求职者向面试官提问的问题以及关于Bybit的信息

郑泽洲的博客 2582

Swift 学习笔记 [2] 类 结构体 枚举

结构体、枚举、类 学习 学了还是要用,第一版Swift文档出来的时候,还凑热闹学了一次,现在都忘得差不多了。这次至少要做个小项目出来练练手才不至于生疏。

码农Peter 1327

STM32单片机远程升级

stm32远程升级

fang_yang_wa的博客 1万+

Swift学习笔记笔记(四)Swift枚举&结构体&函数&泛型

本次课程的学习,我主要学习了Swift枚举&结构体&函数&泛型让我对swift编程语言有了一个基本的认识。在罗老师的带领学习下,我越来越喜欢这IOS门课程,希望在以后的学习中,我可以越来越主动去学习了解更多的知识。

个人博客地址https://sun98k.github.io/ 873

手撕代码系列:Conv2D

在实际的神经网络中,每个卷积核都会对应一个偏置值。这意味着如果网络有多个卷积核,每个卷积核的输出都可以加上对应的偏置。

qq_55794606的博客 910

【实战指南】EC-Engineer中ESI配置与PDO Mapping全流程解析

本文详细解析了EC-Engineer中ESI配置与PDO Mapping的全流程操作,包括环境准备、ESI文件导入技巧、在线配置细节及故障处理。特别强调了WinPcap驱动的兼容性问题和PDO Mapping的最佳实践,帮助工程师高效完成EtherCAT总线配置,适用于工业自动化领域的伺服控制与运动协同场景。

weixin_28730927的博客 397

iOS学习笔记44-Swift(四)枚举和结构体

一、Swift的枚举枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值。 Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法1. 简单枚举定义和使用//定义枚举,使用enum关键字 enum Method{ case Add case Sub

执着丶执念的博客 2970

AISHELL-1中文语音数据集实战:从下载到训练你的第一个ASR模型(附完整代码)

本文详细介绍了如何使用AISHELL-1中文语音数据集从数据准备到训练端到端语音识别模型的全流程。AISHELL-1作为国内首个开源的普通话语音数据集,包含178小时高质量录音,适合中文自动语音识别(ASR)系统开发。文章涵盖数据下载、预处理、Conformer-CTC模型训练、评估及优化策略,并附完整代码实现。

garlic的博客 1121

Swift学习笔记(三)-枚举和结构体

枚举 使用 enum来创建枚举。 枚举也能够包含方法。 enum Rank: Int { case ace = 1 case two, three, four, five, six, seven, eight, nine, ten case jack, queen, king func simpleDescription() -> String { switch self { case .ace: return “

宇仔TuT的博客 430

OpenVox 8FXO板卡驱动安装记录

OpenVox A800P和A1200P的板卡驱动安装及问题解决方法

clliu的专栏 2463

python爬虫豆瓣读书top250+数据清洗+数据库+Java后端开发+Echarts数据可视化(二)

之前的博客已经写了python爬取豆瓣读书top250的相关信息,接下来继续看如何清洗数据。 如果有没看懂的或是不了解上一部分说的是什么内容的,请看https://blog.youkuaiyun.com/qq_45804925/article/details/112848887 现在开始具体内容的复习: 1. 豆瓣读书top250信息预处理 #数据清洗 import pandas as pd import re import time # 先读取数据文件 data = pd.read_csv('E:/Class/商.

qq_45804925的博客 4443

ios 结构体跟枚举变量的区别_iOS学习笔记44-Swift(四)枚举和结构体

一、Swift的枚举枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值。Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法1. 简单枚举定义和使用//定义枚举,使用enum关键字enum Method{case Addcase Subcase Mulcase Di...

weixin_39866265的博客 308

06 - 深度学习处理器原理

深度学习处理器的重要性在于它们可以加速深度学习任务的执行,从而推动了人工智能的发展。传统的通用处理器虽然可以执行深度学习任务,但它们不够高效,需要消耗大量的能量和时间。深度学习处理器通过硬件加速和特定设计来优化深度学习任务的执行,从而可以提高执行效率、降低能耗和加速训练和推断过程。 深度学习处理器的发展也推动了深度学习算法的创新,因为算法的发展需要硬件的支持和驱动。同时,深度学习处理器的出现也促进了更广泛的应用场景,包括自动驾驶、人脸识别、语音识别、图像识别等领域。因此,深度学习处理器的重要性不仅在于加速

m0_51339444的博客 752

iOS学习笔记44 Swift(四)枚举和结构体

一、Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值。 Swift中的枚举比OC中的枚举强大得多,因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法 1. 简单枚举定义和使用 //定义枚举,使用enum关键字 enum Method{ case Add case Sub...

weixin_33937913的博客 132

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

swift学习笔记之---数组、字典、枚举、结构体

1、数组-Array let types = ["none","warning","error"] //省略类型的数组声明 let menbers = [String]() //声明一个空数组 menbers.append("six") //添加元素 menbers += ["seven"] //添加元素 menbers.insert(...

weixin_34356310的博客 177

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Swift2.2 学习笔记(五) ___枚举和结构体

使用enum来创建一个枚举。就像类和其它所有命名类型一样,枚举可以包含方法enum Rank:Int { case Ace = 1 case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten case Jack,Queen,King func simpleDescription() ->String { swit

嗄花花__ 445

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Swift 个人学习笔记 - 01: A Swift Tour

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 Reference: 原版:Th...

weixin_34349320的博客 177

Swift4 学习笔记——基础篇

Swift 4.0 学习笔记

揽月御歌行 4879

swift基础语法

swift基础语法

weixin_52341045的博客 2054

Swift SwiftUI 学习笔记 2024

找到 File -> New -> PlayGround。如何打开 playground?

学习笔记 1033

学习笔记 - Swfit 6.1 - 语法概览

该等级类型的值可以传给子程序作为参数,可以从子程序里返回,可以赋给变量。大多数程序设计语言里,整型、字符类型等简单类型都是一级的。该等级类型的值可以传给子程序作为参数,但是不能从子程序里返回,也不能赋给变量。类型:规定了变量可以取的值得范围,以及该类型的值可以进行的操作。值是实际值,而不仅仅是编写其原始值的另一种方式。事实上,在没有有意义的原始值的情况下,可以不必提供原始值。这是种默认值的写法,更健壮的处理当数据可能为。可以对方法,函数,类,枚举,结构体应用泛型。函数是一种特殊的闭包,有名字的闭包(

ioSugar 774

Swift学习笔记 - 目录

Swift学习笔记 根据《Swift编程权威指南》和 Swift官方文档 学习整理的Swift学习笔记,持续更新,中间有什么错误,欢迎大家留言讨论。 本篇为系列总目录。 总体目录 一、类型、常量和变量 二、流程控制 三、容器(集合) 四、函数 五、闭包 六、枚举 七、结构体、类和方法 八、属性 九、下标 十、继承 十一、初始化 … 官方文档 swift官方文档 ...

weixin_41743200的博客 330
上一篇: Swift_学习笔记_控制语句和函数
下一篇: Swift_学习笔记_类
shengkuiwang
博客等级 码龄10年 34粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值