類和機構提是人們構建代碼全部的一種通用且靈活的結構體.爲了在類和結構體中實現各類功能,咱們必須嚴格按照常量,變量及函數鎖規定的語法規則來定義屬性和添加方法.與其餘編程語言不一樣的是swift並非要求咱們爲自定義的類和結構體去創造獨立的接口和實現文件.咱們所須要作的只是在一個單一文件中定義一個類或結構體,系統將會自動生成面向其餘代碼的外部接口.編程
類和結構體有類似的定義方式.咱們能夠經過關鍵字"class","struct"來分別表示雷和結構體,並在一對花括號中定義他們的具體內容,入:swift
struct Weapon {
var name: String = ""
var hitRate: CGFloat = 0.0
var attack: Int = 0
}
class Player {
var name: String = ""
var hp: Int = 0
var profession: String = ""
var sabre = Weapon()
}
複製代碼
結構體和類都是使用構造惡氣語法來生成新的實例.構造器語法的最簡單心事是在結構體或類的類型名稱後根鎖一個空的圓括號,經過這種方式所建立的類或結構體實例,其屬性均會被初始化爲默認值. 入:數組
let weapon = Weapon()
let player = Player()
複製代碼
經過使用點號".",咱們能夠訪問實例中所含有的屬性.其語法規則是,實例名後面緊跟屬性名,二者經過點號"."鏈接,入:bash
weapon.name
weapon.hitRate
weapon.attack
player.name
player.hp
player.profession
player.sabre
複製代碼
值類型: 被賦給一個變量,常量或自己被傳遞給一個函數式,實際上操做的是它的副本(簡單來講,值類型傳遞的是值複本). 實際上,在swift中,全部的基本類型 ---整數,浮點數,布爾值,字符串,數組,集,字典和枚舉,都是值類型,並都是以結構體的形式來實現的.編程語言
在swift中,全部的結構體都是值類型,這意味着他們的實例,以及實例中所包含的任何值類型屬性,在代碼中傳遞時都會被複制.函數
引用類型: 在被賦於一個變量,常量或被傳遞到一個函數式,操做的是引用,其並非複製.所以,引用的是已存在的實例自己而不是其副本.網站
類和結構體有不少類似的地方,整體來講,一下這些狀況,能夠考慮使用結構體:ui
swift中字符串,數組,集合字典類型均以結構體的形式實現,這意味着string,set,array,dictionary類型數據被賦值給新的常量(或變量),或者當被傳入函數(或方法)中時,他們的值會發生複製行爲(值傳遞方式)spa
我的網站.net
微博:順揚sky
簡書:順揚sky
掘金:順揚sky