Swfit初學6 協議 結構體 列舉 繼承

2021-09-30 11:35:16 字數 2167 閱讀 8742

/*---------------我是帥氣的分割線--------*/

/*** 協議

*/@objc protocol description

//如果宣告可選擇實現方法. 需要在func前加@optional宣告,而且協議前面要加@objc 這樣協議結構體不能遵守,所以也不允許matating方法的存在

//protocol description

/*---------------我是帥氣的分割線--------*/

/*------- 結構體 -------*/

struct point

struct size

// swift中結構體也可以建立("物件")例項

var point = point()

var size = size()

//建立兩個空的陣列

var anemptyarraya = array()

// or

var anemptyarrayb = string()

struct rect

set (getcenter)

}mutating func moveby(deltax:double,deltay: double)

//------實現協議方法

func description() -> string

mutating func amutatingmethod()

// 如果是現實協議中的型別方法,雖然在協議中使用了class關鍵字,但是在結構體

static func atypemethod()

}var frame = rect()

frame.origin.x = 10

frame.origin.y = 10

= 10

= 10

frame.size = size(width: 100, height:100)

println("frame = (\(frame.origin.x),\(frame.origin.y),\(frame.size.width),\(frame.size.height))")

println("frame.center = (\(frame.center.x),\(frame.center.y))")

println(frame.description())

/*---------------我是帥氣的分割線--------*/

/*** 列舉值

*/enum personideentify: string

class person

//實現協議方法

func description() -> string

// 在類中如果實現協議中定義的mutating方法,那麼不需要加"mutating"關鍵字

func amutatingmethod()

}//前面宣告列舉,直接可以用" .student "再次說明自動型別推斷

var persona = person(name: "張三",*** :"m", identify: .student)

var personb = person(name: "lisi",*** :"f", identify: .teacher)

switch (persona.identify!)

/*---------------我是帥氣的分割線--------*/

/*** 繼承

*/class student: person

init(name: string,***:string,number:string)

}var studenta = student(name: "李莉",***: "f",number:"312321")

var studentb = student(name: "李莉",***: "f",number:"312321")

println("student attendclasstime = \(student.attendclasstime)")

class teacher:person

override func description() -> string

}var teachera = teacher(name:"張陽",***:"男",course:"swfit")

println()

SWfit學習4 列舉和結構體

swift的列舉型別是一系列的值,不同於c語言中列舉型別是整數型別。每個列舉定義了個新的型別 使用 enum 建立列舉 注意 swift 的列舉可以關聯方法 enum rank int 關於switch語句,必須是完備的。如上所示,如果沒有把所有case寫完整,那麼就需要加上default語句。如上...

結構體 共用體 列舉

結構體 共用體 列舉 分析 首先宣告的結構體元素year的位址是最低的 0012ff74 而最後宣告的day的位址是最高的 0012ff7c 而我們又知道在棧中宣告變數的時候,位址是從高到低的分配的.因此,切記在結構體中宣告的變數與直接在外面宣告是不一樣的.在結構體中,最先宣告的變數放在最低位的.另...

列舉,結構體,共用體

列舉的定義 enum log level dbg,inf,war,err,fat,all,offvoid writeinfor log level level switch level case dbg printf d n dbg 上述定義的列舉型別,預設為dbg 0,inf 1,依次類推。1 列...