Swift3.0函數的枚舉 函數 結構體 類

//枚舉 函數 結構體 類 協議? 代理設計模式 閉包

import Foundation

//枚舉 enum

// enum 枚舉名:值類型 {

//? ? case 枚舉情況 = 初始值

//? ? case 枚舉情況 = 初始值

//? ? ...

// 值類型和初始值可以選擇是否賦值

//枚舉也是一種數據類型,只不過是我們自定義的數據類型

//}

//季節

enum Season:String {

case spring = "春天"

case summer = "夏天"

case autumn = "秋天"

case winter = "冬天"

}

//定義變量常量

let aSeason:Season = Season.spring

//給定數據類型就賦值時就可以省略枚舉類型

let aSeason2:Season = .summer

//不給定數據類型,首次賦值一定要給枚舉類型

var aSeason3 = Season.summer

aSeason3 = .spring

//獲取枚舉情況的值

print(aSeason3.rawValue)//rawValue才是真正的枚舉值

print(aSeason3.hashValue)//hashValue case的編號從0開始

//枚舉經常和switch結合使用

switch aSeason3{

case .spring:

print("春天來了,夏天還會遠嗎?")

fallthrough //增加case的穿透性 但是只能穿透一條

case .summer:

print("夏天來了,秋天還會遠嗎?")

fallthrough

case .autumn:

print("秋天來了,收獲的季節到了")

fallthrough

//枚舉情況沒有列舉完的default語句必須添加

// 枚舉情況都列舉完,default語句不需要再寫

case .winter:

print("冬天太冷了")

//default:

//? ? print("你是來自火星的嗎")

}

//函數:能完成特定功能的代碼段 好處:方便調用,保護知識產權 減少代碼冗余

////1無參數,無返回值

//2無參數,有返回值

//3有參數,無返回值

//4有參數,有返回值

// 函數定義的格式

/*

func 函數名(參數列表) -> (返回值類型) {

函數體

}

*/

//小王買紅酒(沒給錢 ,沒紅酒)

//1無參數,無返回值

//函數的定義

func buyRedwine() -> Void {

print("錢沒給不買")

}

//函數的調用

buyRedwine()

//2無參數,有返回值

func buyRedwine2() -> Int {

print("82年的拉菲來一瓶")

return 1

}

//函數的調用

let bottle = buyRedwine2()

print("買了\(bottle)瓶")

//3有參數,無返回值

//沒有返回值的時候 ->void可以省略

func buyXuebi(money:Int){

print("\(money)塊錢啊!好多呀!跑路呀")

}

buyXuebi(money: 100)

//4有參數,有返回值

func buyXuebei2(money:Int) -> Int {

print("買了\(money / 2)瓶雪碧")

return money / 2

}

let bottle2 = buyXuebei2(money: 5)

print("買了\(bottle2)瓶")

//計算兩個數的和

//a,b是形參 oneNumber,otherNumber是外部參數,對形參進行說明的

func sum(oneNumber a:Int, otherNumber b:Int) -> Int {

return a + b

}

//調用時傳的的值為實參

print(sum(oneNumber: 10, otherNumber: 20))

//可變參數函數

func qiuHe(numbers:Int...) -> Int {

//傳的多個參數存放在numbers形參里了,此時numbers相當一個數組

var result = 0

for item in numbers {

result += item

}

return result

}

print(qiuHe(numbers: 1,2,3,4,5,6,7))

//定義一個函數交換兩個變量的值

//Swift 所有的形參默認都是常量,函數內部不能修改形參的值

func swap(num1: inout Int , num2:inout Int)? {

let temp = num1

num1 = num2

num2 = temp

}

var a = 10, b = 20

swap(&a, &b)

print("a\(a)" , "b\(b)")

//結構體 用來描述一個有多個屬性組成的整體,也是一種自定數據類型

//結構體的定義格式

/*struct 結構體名{

屬性列表

方法

}*/

//類的三大特性封裝 類型 多態

struct Orgin {

//存儲屬性

var x:Float

var y:Float

//對象方法

func drawOrign ()? {

print("在二維坐標系中畫一個點")

}

//類方法

static func showPoint(){

print("我是一個點")

}

}

//結構題的使用

let p1 = Orgin(x: 10.2, y: 15.3)

p1.drawOrign()

//使用結構體名調用類方法

Orgin.showPoint()

print(p1.x,p1.y)

//尺寸的結構體

struct Size {

var height:Float

var? width:Float

}

let asize = Size(height: 20.0, width: 100.0)

print(asize)

struct Frame {

//結構體的屬性依然可以是結構體

var orign:Orgin

var size:Size

//計算屬性不是用來給自己賦值的 而是要間接的為其他屬性賦值,自己的值只能通過計算獲得,不能直接給自己賦值

var center:Orgin {

// 間接為orign屬性賦值

set(newCenter) {

orign.x = newCenter.x - size.width * 0.5

orign.y = newCenter.y - size.height * 0.5

}

//間接的獲取到自己的值

get {

let x = orign.x + size.width * 0.5

let y = orign.y + size.height * 0.5

return Orgin(x:x,y:y)

}

}

}

var aFrame = Frame(orign: Orgin(x: 10, y: 20), size: Size(height: 50, width: 100))

//取計算屬性的值

print(aFrame.center)

//給計算屬性賦值,不是給它自己賦值,是間接的為其他屬性賦值

aFrame.center = Orgin(x: 50, y: 50)

print(aFrame.orign) //orgin:(0.0,25.0)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380

推薦閱讀更多精彩內容