Swift 結構體的使用

2021-09-08 14:04:32 字數 1659 閱讀 3584

swift 結構體是構建**所用的一種通用且靈活的構造體。

我們可以為結構體定義屬性(常量、變數)和新增方法,從而擴充套件結構體的功能。

與 c 和 objective c 不同的是:

結構體總是通過被複製的方式在**中傳遞,因此它的值是不可修改的。

我們通過關鍵字 struct 來定義結構體:

struct

namestruct

我們定義乙個名為 markstruct 的結構體 ,結構體的屬性為學生三個科目的分數,資料型別為 int:

struct

markstruct

我們可以通過結構體名來訪問結構體成員。

結構體例項化使用let關鍵字:

struct

studentmarks

let marks =studentmarks()

print(

"mark1 是 \(marks.mark1)")

print(

"mark2 是 \(marks.mark2)")

print(

"mark3 是 \(marks.mark3)

")

我們通過結構體名 'studentmarks' 訪問學生的成績。結構體成員初始化為mark1, mark2, mark3,資料型別為整型。

然後我們通過使用let關鍵字將結構體 studentmarks() 例項化並傳遞給 marks。

最後我們就通過.號來訪問結構體成員的值。

以下例項化通過結構體例項化時傳值並轉殖乙個結構體:

struct

marksstruct

}var astruct = marksstruct(mark: 98

)var bstruct = astruct //

astruct 和 bstruct 是使用相同值的結構體!

bstruct.mark = 97

print(astruct.mark)

//98

print(bstruct.mark) //

97

在你的**中,你可以使用結構體來定義你的自定義資料型別。

結構體例項總是通過值傳遞來定義你的自定義資料型別。

按照通用的準則,當符合一條或多條以下條件時,請考慮構建結構體:

舉例來說,以下情境中適合使用結構體:

結構體例項是通過值傳遞而不是通過引用傳遞。

struct

markstruct

}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)

swift與結構體

struct resolution 所有結構體都有乙個自動生成的成員逐一構造器,用於初始化新結構體例項中成員的屬性 let vga resolution width 640,height 480 let someresolution resolution println vga.width prin...

swift中物件和結構體的使用

class student let stu student name xiao age 18 print 姓名 stu.name 姓名 xia struct person let person person name xiao age 18 print 姓名 person.name 姓名 xiao ...

Swift教程之結構體

import foundation 結構體 struct student 所有結構體都有乙個自動生成的成員逐一構造器,用於初始化新結構體例項中成員的屬性 let vga student name 小明 age 2 let somestudent student print vga.name prin...