Swift高階開發語言 結構體,類,構造器,屬性

2021-07-06 03:08:21 字數 1965 閱讀 2077

// 結構體和類   

// 在swift中,結構體被做了很多強化,幾乎所有的資料型別都是用結構體實現的,

// 相同點:1.都可以定義變數 2.都可以定義方法 3.都可以定義構造器 init 4.都可以遵守歇息 5.擴充套件

// 不同點:1.結構體是值型別,類是引用型別 2.類可以被繼承 3.類可以使用型別推斷 4.類可以使用 deinit(析構器) 5.乙個類可以有多個引用

結構體

// 結構體

struct resolution

// 結構體自動根據屬性生成構造器(init方法)

let resolution = resolution(height: 10, width: 10)

resolution.height

resolution.width

// 類

class

video

// 類不會自動生成構造器,需要我們主動實現

let video = video()

video.framerate = 0.2

// 值型別和引用型別的區別

var newresolution = resolution

newresolution.height = 29

newresolution.height

resolution.height

var newvideo = video

newvideo.framerate

newvideo.framerate = 0.5

newvideo.framerate

video.framerate

構造器

// 構造器

struct resolutiona

}let resolution2 = resolutiona(gao: 10, kuan: 10)

resolution2.height

class

videoa

}let videoa = videoa(frame: 0.3, resolu_va: resolution2)

屬性

// 屬性分為兩種:計算屬性和儲存屬性

// 儲存屬性:儲存類和結構體裡面的常量或變數,只起到儲存作用

// 計算屬性:不作為儲存功能使用,計算屬性本身提供get set方法,間接的獲取計算屬性的值

struct point

struct size

var point = point(x:0, y:0)

// 代表正方形

struct rect

get}

}var rect = rect(point_z: point(x: 0, y: 0), size: size(with: 100, heigth: 100))

rect.center.x

rect.center = point(x: 500, y: 500)

rect.point_z.x

// 定義方法

struct resolutionb

self.with = 20

}// 類似於 + 方法 靜態方法

static func helloword()

}var resolution4 = resolutionb()

resolution4.hello()

class

videob

// +方法 型別方法

func djj()

// 型別屬性,只能是計算屬性,只實現get方法--唯讀

class

varname:string

}}var video3 = videob()

video3.dj()

videob.name

Swift 類和結構體

swift 中類和結構體的共同點 1.定義屬性用於儲存值 2.定義方法用於提供功能 3.定義下標用於訪問值 4.定義構造器用於生成初始化值 5.通過擴充套件以增加預設實現的功能 6.符合協議以對某類提供標準功能 class 不同於 struct 的特點 1.允許乙個類繼承另乙個類的特徵 2.型別轉換...

Swift 結構體和類

結構體 swift結構體也具有封裝的概念 swift結構體比oc c語言裡面的結構體更加進了一步,裡面可以有方法,更接近我們的類 結構體的定義格式 struct結構體名 struct rect var width double 按構造方法賦初值 var height double 方法 func g...

詳解Swift語言中的類與結構體

類 在 swift 中類是建立靈活的構建塊。類似於常量,變數和函式,使用者可以定義的類的屬性和方法。swift給我們提供了宣告類,而無需使用者建立介面和實現檔案的功能。swift 允許我們建立類作為單個檔案和外部介面,將預設在類一次初始化來建立。使用類的好處 類和結構的共同特徵 語法複製 如下 cl...