Swift學習之類和結構體的建立

2022-03-06 06:12:40 字數 2693 閱讀 6576

隨著一步步的學習,學習到的新知識越來越多了,不管是新的還是舊的,都禁不住時間的堆積,再熟悉的知識點時間久了都會漸漸的忘記,也許這就是人們生活中一種潛在的惰性吧,看似非常熟悉的東西,等到真正要用的時候,卻拿不出手來,總是似懂非懂的,所以無論知識點多麼多,過的時間多久,我們都要經常拿出來練習下,以免忘記.這些對於我們來說都是非常重要的,有的人會認為我記性非常好,寫一遍都可以記住,但是真的是這樣嗎,所話說的好,好記性不如爛筆頭,說的就是那些好吃懶做的人,所以我希望大家都可以多動手,經常練習我們所學過的知識,讓他真正的牢記於心!

下面就為大家講解下今天所學習的知識點吧,那就是類和結構體:

類是用關鍵字 class來表示的, 結構體是用struct來表示的,下面附上具體**:

class

someclass

struct

length

}

//

呼叫了預設的構造器 init

var length =length()

//點語法訪問元素

length.start = 7.0

length.end = 3.0

length.callength()

//逐一構造器 , 只有結構體才有的, 類是沒有的

var len = length(start: 3.0, end: 9.9)

以上跟oc中有點相似,可以通過點語法訪問元素變數。

下面再附上具體示例:

func callength(length: length) 

callength(length)

這個是用來計算點之間的距離的。

除此之外我們今天還學習了計算型別,不是直接存值,而是系統提供了乙個getter方法來獲取值,並且還提供了乙個setter方法來設定新的值具體示例如下

struct

rect

set(newcenter)

}//使用mutating關鍵字來修飾 作用:可以修改屬性的值

mutating func calcenter()

}var rect = rect(origin: pointed(x: 50, y: 55), rect: hah(width: 100, height: 55

))rect.calcenter()

var rect1 =rect()

rect1.origin.x = 100

rect1.origin.y = 100

rect1.rect.height = 100

rect1.rect.width = 100

rect1.center

rect1.center = pointed(x: 300, y: 300

)rect1.origin

通過mutating關鍵字可以進行屬性值得修改。

類跟結構體的選擇:

按照通用的準則:當符合一下其中一條或者多條條件的時候,請考慮使用結構體

1.結構體大的使用目的:用來封裝盡量少得簡單資料

2.結構體拷貝的時候,屬於值得拷貝

3.任何在結構體重儲存的值型別屬性,都會被拷貝,而不是引用

4.結構體無需要去繼承另乙個已存在的型別的屬性或者行為

雖然今天講的不是很多吧,更多的是回顧以前所學習的知識點,雖然算不上是大牛吧,但是還是希望可以和友友們多進行交流,不管是技術上,還是什麼,都希望可以從中得到提高,所以希望大家都不吝賜教了,最後為大家附上本堂課的乙個練習題,題目是這樣的:定義乙個student的結構體, name,age作為屬性, 構造方法(對name,age賦初值),例項方法(pringstuinfo),類方法(printstusorry)。下面便是詳細**了:

struct

student

func pringstuinfo()

}student.name = "網咖"

student.name

student.printstusorry()

var stu =student()

stu.pringstuinfo()

struct

student1

init (name:string, age:int)

func printstuinfo()

mutating func changename(newname: string)

static

func printstusorry()

}var stu2 =student1()

stu2.changename("喬明

")stu2.printstuinfo()

student.printstusorry()

class

teacher

init(name: string, age: int)

func printteachinfo()

class

func printteachsorry()

}var stu3 =teacher()

stu3.printteachinfo()

teacher.printteachsorry()

好了今天就到這裡了,由於今天所學習的東西並不是很多,所以今天就不說那麼多了,明天我們就要學習ui部分了,雖然以前也學習過,但是這次是要用一種新的語言來寫的,想必大家多多少少都會知道點的吧,所以在明天的部落格中,還望大家多提意見了,加油加油!

Swift學習之類和結構體

struct resolution class videomodel 結構體自動的提供了成員逐一構造器 let resolution resolution width 1,height 9 print resolution.width 1 結構體 列舉都是值型別,賦值的時候都會複製 指向的都不是同乙...

Swift學習 類和結構體補充

類的構造器 class zs init name string 析構 與之前寫oc中的dealloc功能一樣 deinit 預設構造器 var zs zs 呼叫了重寫的構造方法 var zs1 zs name 帥不 zs1.name 定義結構體 struct length 呼叫了預設的構造器 ini...

swift 學習記錄(類和結構體)

類和結構體是人們構建 所用的一種通用且靈活的構造體。我們可以使用完全相同的語法規則來為類和結構體 定義屬性 常量 變數 和新增方法,從而擴充套件類和結構體的功能。類和結構體對比 swift 中類和結構體有很多共同點。共同點在於 1 定義屬性用於儲存值 2 定義方法用於提供功能 3 定義附屬指令碼用於...