Swift物件導向之枚舉

來源:互聯網
上載者:User
////  main.swift//  Swift物件導向之枚舉////  Created by Goddog on 15/7/17.//  Copyright © 2015年 Goddog. All rights reserved.//import Foundationprint("Swift不僅是面向過程還是物件導向的,Swift可以定義枚舉、結構體、類3種物件導向的類型,用枚舉、結構體定義的變數屬於實值型別,用類定義的變數屬於參考型別,3種物件導向都支援定義儲存屬性、計算屬性、方法、下標、構造器和巢狀型別")print("Swift5種物件導向的程式單元:類、結構體、枚舉、擴充、協議")print("定義類型的步驟:1.聲明變數;2.建立執行個體;3.訪問屬性;4.調用方法;5.派生子類(枚舉和結構體不支援繼承)")//MARK: - 定義枚舉enum Season{    case Spring    case Summer    case Fall    case Winter}//或enum Weekday{    case Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}//使用枚舉聲明變數var day: Weekday//使用已有枚舉賦值day = Weekday.Saturdayprint("結果是:\(day)")//MARK: - 枚舉值和switch語句var chooseDay = Weekday.Mondayswitch chooseDay{    case .Monday:        print("周一")    case .Tuesday:        print("周二")    case .Wednesday:        print("周三")    case .Thursday:        print("周四")    case .Friday:        print("周五")    case .Saturday:        print("周六")    default:        print("周日")}//MARK: - 原始值//定義枚舉,指定原始值為Intenum Weekdays: Int{    case Monday, Tuesday = 1, Wednessday = 5, Thursday, Friday, Saturday, Sunnday}var days = Weekdays.Mondayprint("Monday is : \(days.rawValue)")   //0是根據Tuesday=1自動判斷的days = .Fridayprint("Friday is : \(days.rawValue)")   //7是根據Wednessday=5自動判斷的enum Seasons: Character{    //為每個枚舉指定原始值    case Spring = "s"    case Summer = "u"    case Fall = "f"    case Winter = "w"}//根據原始值擷取枚舉var getSeason = Seasons(rawValue: "s")if getSeason != nil{    switch (getSeason!)    {    case .Spring:        print("春")    case .Summer:        print("夏")    case .Fall:        print("秋")    default:        print("冬")    }}//MARK: - 關聯值enum Planet{    //不同枚舉可以攜帶數量不等,類型不等的關聯值    case Mercury(weight: Double, density: Double, name: String)    case Venus(Double, Double)    case Earth(Double, String)    case Mars(density: Double, name:String)    case Jupiter    case Saturn    case Uranus    case Nepturn}var p1 = Planet.Mercury(weight: 0.05, density: 5.43, name: "水星")var p2 = Planet.Venus(0.815, 5.25)var p3 = Planet.Earth(1.0, "地球")var p4 = Planet.Mars(density: 3.95, name: "火星")switch(p3){    case Planet.Earth(var weight,var name):        print("\(name),  \(weight)")    default:        break}switch (p1){    case let .Venus(weight, density):        print("\(weight),   \(density)")    case let .Mercury(weight: w, density: d, name: n):        print("\(w),  \(d),  \(n)")    default:        break}
Swift不僅是面向過程還是物件導向的,Swift可以定義枚舉、結構體、類3種物件導向的類型,用枚舉、結構體定義的變數屬於實值型別,用類定義的變數屬於參考型別,3種物件導向都支援定義儲存屬性、計算屬性、方法、下標、構造器和巢狀型別Swift5種物件導向的程式單元:類、結構體、枚舉、擴充、協議定義類型的步驟:1.聲明變數;2.建立執行個體;3.訪問屬性;4.調用方法;5.派生子類(枚舉和結構體不支援繼承)結果是:Swift物件導向之一.Weekday.Saturday周一Monday is : 0Friday is : 7春地球,  1.00.05,  5.43,  水星Program ended with exit code: 0


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.