gpt4 book ai didi

详解Swift 结构体

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章详解Swift 结构体由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Swift 结构体是构建代码所用的一种通用且灵活的构造体.

我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能.

与 C 和 Objective C 不同的是:

  • 结构体不需要包含实现文件和接口。
  • 结构体允许我们创建一个单一文件,且系统会自动生成面向其它代码的外部接口。

结构体总是通过被复制的方式在代码中传递,因此它的值是不可修改的.

语法 。

我们通过关键字 struct 来定义结构体:

?
1
2
3
4
5
6
struct nameStruct {
   Definition 1
   Definition 2
   ……
   Definition N
}

实例 。

我们定义一个名为 MarkStruct 的结构体 ,结构体的属性为学生三个科目的分数,数据类型为 Int:

?
1
2
3
4
5
struct MarkStruct{
   var mark1: Int
   var mark2: Int
   var mark3: Int
}

我们可以通过结构体名来访问结构体成员.

结构体实例化使用 let 关键字:

?
1
2
3
4
5
6
7
8
9
10
11
import Cocoa
 
struct studentMarks {
   var mark1 = 100
   var mark2 = 78
   var mark3 = 98
}
let marks = studentMarks()
print( "Mark1 是 \(marks.mark1)" )
print( "Mark2 是 \(marks.mark2)" )
print( "Mark3 是 \(marks.mark3)" )

以上程序执行输出结果为:

Mark1 是 100 Mark2 是 78 Mark3 是 98 。

实例中,我们通过结构体名 'studentMarks' 访问学生的成绩。结构体成员初始化为mark1, mark2, mark3,数据类型为整型.

然后我们通过使用 let 关键字将结构体 studentMarks() 实例化并传递给 marks.

最后我们就通过 . 号来访问结构体成员的值.

以下实例化通过结构体实例化时传值并克隆一个结构体:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import Cocoa
 
struct MarksStruct {
   var mark: Int
 
   init(mark: Int) {
    self.mark = mark
   }
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体!
bStruct.mark = 97
print(aStruct.mark) // 98
print(bStruct.mark) // 97

以上程序执行输出结果为:

98 97 。

结构体应用 。

在你的代码中,你可以使用结构体来定义你的自定义数据类型.

结构体实例总是通过值传递来定义你的自定义数据类型.

按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体:

  • 结构体的主要目的是用来封装少量相关简单数据值。
  • 有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用。
  • 任何在结构体中储存的值类型属性,也将会被拷贝,而不是被引用。
  • 结构体不需要去继承另一个已存在类型的属性或者行为。

举例来说,以下情境中适合使用结构体:

  • 几何形状的大小,封装一个width属性和height属性,两者均为Double类型。
  • 一定范围内的路径,封装一个start属性和length属性,两者均为Int类型。
  • 三维坐标系内一点,封装x,y和z属性,三者均为Double类型。

结构体实例是通过值传递而不是通过引用传递.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import Cocoa
 
struct markStruct{
   var mark1: Int
   var mark2: Int
   var mark3: Int
  
   init(mark1: Int, mark2: Int, mark3: Int){
     self.mark1 = mark1
     self.mark2 = mark2
     self.mark3 = mark3
   }
}
 
print( "优异成绩:" )
var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)
 
print( "糟糕成绩:" )
var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)
print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

以上程序执行输出结果为:

优异成绩: 98 96 100 糟糕成绩: 34 42 13 。

以上实例中我们定义了结构体 markStruct,三个成员属性:mark1, mark2 和 mark3。结构体内使用成员属性使用 self 关键字.

从实例中我们可以很好的理解到结构体实例是通过值传递的.

以上就是详解Swift 结构体的详细内容,更多关于Swift 结构体的资料请关注我其它相关文章! 。

原文链接:https://www.runoob.com/swift/swift-structures.html 。

最后此篇关于详解Swift 结构体的文章就讲到这里了,如果你想了解更多关于详解Swift 结构体的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com