• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >swift > 详解Swift语言中的类与结构体

详解Swift语言中的类与结构体

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了swift语言,swift语言教程,swift语言下载,swift语言开发工具,swift语言实战入门等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

类
在 Swift 中类是建立灵活的构建块。类似于常量,变量和函数,用户可以定义的类的属性和方法。Swift给我们提供了声明类,而无需用户创建接口和实现文件的功能。Swift 允许我们创建类作为单个文件和外部接口,将默认在类一次初始化来创建。

使用类的好处:

  • 继承获得一个类的属性到其他类
  • 类型转换使用户能够在运行时检查类的类型
  • 初始化器需要处理释放内存资源
  • 引用计数允许类实例有一个以上的参考

类和结构的共同特征:

  • 属性被定义为存储值
  • 下标被定义为提供访问值
  • 方法被初始化来改善功能
  • 初始状态是由初始化函数定义
  • 功能被扩大,超出默认值
  • 确认协议功能标准

语法
Class classname {
   Definition 1
   Definition 2
    ---
   Definition N
}
</div>
定义类
class student{
   var studname: String
   var mark: Int
   var mark2: Int
}
</div>
创建一个实例的语法:
let studrecord = student()
示例
class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

class studentMarks {
   var mark = 300
}
let marks = studentMarks()
println("Mark is \(marks.mark)")
</div>
当我们使用 playground 运行上面的程序,我们得到以下结果

Mark is 300
</div>

访问类属性作为引用类型
类属性可使用 '.' 语法来访问。属性名称由 "." 分离在实例名后。
class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}
let marks = studentMarks()
println("Mark1 is \(marks.mark1)")
println("Mark2 is \(marks.mark2)")
println("Mark3 is \(marks.mark3)")
</div>
当我们使用 playground 运行上面的程序,得到以下结果

Mark1 is 300
Mark2 is 400
Mark3 is 900
</div>

类标识符
在 Swift 引用多个常量和变量指向的单个实例。要了解常量和变量指向一个特定的类实例标识操作符的使用。 类实例总是通过引用传递。在类NSString,NSArray 和 NSDictionary 实例始终分配作为参考传递到现有的实例,而不是使用一个副本。

2015114171530231.png (639×119)

class SampleClass: Equatable {
   let myProperty: String
   init(s: String) {
      myProperty = s
   }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
   return lhs.myProperty == rhs.myProperty
}

let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")

spClass1 === spClass2 // false
println("\(spClass1)")

spClass1 !== spClass2 // true
println("\(spClass2)")
</div>
当我们使用 playground 运行上面的程序,得到以下结果

main.SampleClass
main.SampleClass

</div>

结构体
Swift 提供了利用构造作为结构的灵活的构建块。 通过利用这些结构的一次可以定义构建体的方法和属性。

这不同于 C 和 Objective C 编程:

结构不用要求实现文件和接口。

结构体使我们能够创建一个文件并自动扩展其接口到其它块。

在结构体中的变量值被复制并传递在后续的代码,通过返回的旧值的副本使得这些值不能被改变。

语法
Structures are defined with a 'Struct' Keyword.
struct nameStruct {
   Definition 1
   Definition 2
    ---
   Definition N
}
</div>
结构体的定义
考虑例如,假设要访问包含三个科目记录标记的学生并找出三个科目的总和。在这里,markStruct用于初始化的结构有三个标记,数据类型为 'Int'。
struct MarkStruct{
   var mark1: Int
   var mark2: Int
   var mark3: Int
}
</div>
访问结构体及属性
结构的成员是由它的结构名访问。 结构体的实例中由 'let' 关键字进行初始化。
struct studentMarks {
   var mark1 = 100
   var mark2 = 200
   var mark3 = 300
}
let marks = studentMarks()
println("Mark1 is \(marks.mark1)")
println("Mark2 is \(marks.mark2)")
println("Mark3 is \(marks.mark3)")
</div>
当我们使用 playground 运行上面的程序,得到以下结果:

Mark1 is 100
Mark2 is 200
Mark3 is 300
</div>

学生成绩需要访问结构名“studentMarks”。结构成员被初始化为 mark1, mark2, mark3 的整数类型值。然后,结构体 studentMarks()传递给 'marks' 使用 'let' 关键字。 'marks' 将包含结构成员的值。现在通过 '.' 访问结构的初始名称的值,并打印它。
struct MarksStruct {
   var mark: Int

   init(mark: Int) {
      self.mark = mark
   }
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97
println(aStruct.mark) // 98
println(bStruct.mark) // 97
</div>
当我们使用 playground 运行上面的程序,得到以下结果:

98
97




 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Swift 教程
  • Swift 环境搭建
  • Swift中闭包实战案例详解
  • Swift操作Quartz 2D进行简单的绘图与坐标变换的教程
  • Swift语言中的一些访问控制设置详解
  • 深入解析Swift语言中的协议
  • 深入解析Swift语言编程中的可选链
  • 解析Swift语言面相对象编程中的继承特性
  • 详解Swift语言中的类与结构体
  • 详解Swift语言的while循环结构

相关文章

  • 2018-11-30Swift开发iOS应用(1)列表的实现_PHP教程
  • 2017-05-28老生常谈JVM的内存溢出说明及参数调整
  • 2017-05-28Swift3.0 GCD定时器的使用DEMO
  • 2017-05-28Swift快速集成下拉刷新和上拉加载更多示例代码
  • 2017-05-28iOS开发中Swift 指纹验证功能模块实例代码
  • 2017-05-2810个惊艳的Swift单行代码
  • 2017-05-28窥探Swift编程中的错误处理与异常抛出
  • 2017-05-28Swift中的常量和变量简单概述
  • 2017-05-28Swift中的指针操作详解
  • 2017-05-28超全面的Swift编码规范(推荐)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Swift语言中的函数学习教程
    • List调用toString()方法后,去除两头的中括号实例
    • 在 Swift 中测试 UIAlertController的方法
    • MySQL+SSM+Ajax上传图片问题
    • 详解Swift编程中的for循环的编写方法
    • 详解在swift中实现NSCoding的自动归档和解档
    • 在一个项目中同时使用Swift和Objective-C代码混合编程的方法
    • Swift 环境搭建
    • Swift实现堆排序算法的代码示例
    • 通过Session案例分析一次性验证码登录

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有