当前位置: 首页 > news >正文

结构体和类

使用规则

类可以继承,结构体不可以

包括结构体在内的值类型在传递时总会被复制

在类的方法或者属性前面添加关键字final,可阻止子类进行重写

子类重写类方法或者属性必须添加关键字override

类型方法

对于值类型,要声明类型方法需要使用关键字static
对于类,要声明类型方法需要使用关键字class,但是如果想要禁止子类重写类型方法,可以使用static替代class关键字或者在class前面添加关键字final

类型方法中可以调用别的类型方法,也可以使用类型属性,但是不能够调用实例方法和实例属性

mutating

如果一个值类型(结构体或者枚举)的方法需要修改其属性,该方法就必须标记为mutating,原因如下:
mutating方法的第一个参数是self,并且以inout的形式传入,可以在方法内部修改self的属性值
如果不使用mutating关键字,则使用默认形式传入self参数,如果self是值类型,也实际传入的是self的拷贝,所以即使修改了属性值也跟self没关系,所以编译器将这种情况标记为错误。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PRVF-4037 : CRS is not installed on any of the nodes
  • zdpgo_gin_graceful 为zdpgo_gin框架打造的用于实现优雅退出的框架,当你需要程序优雅退出的时候可以考虑使用此框架
  • PCDN业务推荐
  • Transformer架构;Encoder-Decoder;Padding Mask;Sequence Mask;
  • 【区块链+金融服务】区块链在仓储融资的创新应用 | FISCO BCOS应用案例
  • Expo创建的React Native项目如何在Windows上进行打包
  • DVWA靶场配置相关问题解决
  • 获奖方案|趋动科技:资源池化释放AI算力价值
  • 【自动驾驶】ROS中的TF坐标变换(一):静态坐标变换
  • 花10亿裁6300人,这家网络巨头不好过
  • Linux进程和计划任务管理
  • vue-quill-editor富文本组件返回值居中样式不生效
  • 车辆车载客流统计系统解决方案
  • wordpress二次开发 在Woocommerce相关产品中显示产品变体的方法
  • Flink常见面试题整理
  • Brief introduction of how to 'Call, Apply and Bind'
  • django开发-定时任务的使用
  • es的写入过程
  • express + mock 让前后台并行开发
  • FineReport中如何实现自动滚屏效果
  • JavaScript DOM 10 - 滚动
  • npx命令介绍
  • PHP 的 SAPI 是个什么东西
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Web Storage相关
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 从伪并行的 Python 多线程说起
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 数据科学 第 3 章 11 字符串处理
  • 学习使用ExpressJS 4.0中的新Router
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 函数计算新功能-----支持C#函数
  • ​决定德拉瓦州地区版图的关键历史事件
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (70min)字节暑假实习二面(已挂)
  • (js)循环条件满足时终止循环
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (算法)N皇后问题
  • (转)人的集合论——移山之道
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (状压dp)uva 10817 Headmaster's Headache
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .mysql secret在哪_MySQL如何使用索引
  • .naturalWidth 和naturalHeight属性,
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .net6使用Sejil可视化日志
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • /var/spool/postfix/maildrop 下有大量文件
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)