目录

Swift - 结构( Structures)

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

与C和Objective C不同

  • 结构不需要实现文件和接口。

  • Structure允许我们创建单个文件并将其界面自动扩展到其他块。

在Structure中,通过返回旧值的副本来复制变量值并在后续代码中传递,以便不能更改这些值。

语法 (Syntax)

Structures are defined with a 'Struct' Keyword.
struct nameStruct {
   Definition 1
   Definition 2
   ---
   Definition N
}

结构的定义

例如,假设我们必须访问包含三个科目标记的学生记录,并找出三个科目的总数。 这里markStruct用于初始化具有三个标记的结构作为数据类型'Int'。

struct MarkStruct {
   var mark1: Int
   var mark2: Int
   var mark3: Int
}

访问结构及其属性

结构的成员可以通过其结构名称访问。 结构的实例由'let'关键字初始化。

struct studentMarks {
   var mark1 = 100
   var mark2 = 200
   var mark3 = 300
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

当我们使用游乐场运行上述程序时,我们得到以下结果 -

Mark1 is 100
Mark2 is 200
Mark3 is 300

学生标记的结构名称为“studentMarks”。 结构成员初始化为具有整数类型值的mark1,mark2,mark3。 然后结构studentMarks()通过'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
print(aStruct.mark)      // 98
print(bStruct.mark)      // 97

当我们使用游乐场运行上述程序时,我们得到以下结果 -

98
97

结构的最佳使用实践

Swift 4语言提供了将结构定义为用于构建功能块的自定义数据类型的功能。 结构的实例通过其值传递给定义的块以进行进一步操作。

需要有结构

  • 封装简单数据值。

  • 通过“值”而不是“引用”复制封装数据及其关联属性。

  • “复制”和“参考”的结构。

Swift 4中的结构传递其成员的值而不是其引用。

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
   }
}
var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)

当我们使用游乐场运行上述程序时,我们得到以下结果 -

98
96
100

另一个例子

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
   }
}
var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)
print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

当我们使用游乐场运行上述程序时,我们得到以下结果 -

34
42
13

首先定义结构'markStruct',其成员为mark1,mark2和mark3。 现在,成员类的变量被初始化为保存整数值。 然后使用“self”关键字创建结构成员的副本。 一旦创建了结构成员的副本,结构块及其参数标记就会传递给'marks'变量,该变量现在将保存学生标记。 然后将标记打印为98,96,100。对于相同结构成员的下一步骤,使用另一个名为“fail”的实例来指向具有不同标记的相同结构成员。 然后结果打印为34,42,13。这清楚地解释了结构将具有成员变量的副本,然后将成员传递给它们即将到来的功能块。

↑回到顶部↑
WIKI教程 @2018