Skip to content

Instantly share code, notes, and snippets.

@oaleeapp
Created January 21, 2017 05:58
Show Gist options
  • Select an option

  • Save oaleeapp/c2a827e2109010ecd1edbb9a5d5e8d48 to your computer and use it in GitHub Desktop.

Select an option

Save oaleeapp/c2a827e2109010ecd1edbb9a5d5e8d48 to your computer and use it in GitHub Desktop.

Revisions

  1. oaleeapp created this gist Jan 21, 2017.
    101 changes: 101 additions & 0 deletions HouseClassStructEnumExample
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,101 @@
    //: Playground - noun: a place where people can play

    import UIKit

    class 房子 {

    enum 房間 {
    case 臥室
    case 客廳
    case 廚房
    }

    struct 燈光設定 {

    var 臥室亮度: Double
    var 客廳亮度: Double
    var 廚房亮度: Double

    mutating func 調整(_ 房間: 房間, 亮度變化 變化: Double) {
    switch 房間 {
    case .臥室:
    臥室亮度 = 臥室亮度 + 變化
    case .客廳:
    客廳亮度 = 客廳亮度 + 變化
    case .廚房:
    廚房亮度 = 廚房亮度 + 變化
    }
    }

    func 描述() -> String {

    return "臥室亮度: \(臥室亮度), 客廳亮度: \(客廳亮度), 廚房亮度: \(廚房亮度)"
    }

    }

    enum 燈光模式 {
    case 煮飯
    case 睡覺
    case 休閒
    case 讀書

    func 設定() -> 燈光設定 {
    switch self {
    case .煮飯:
    return 燈光設定(臥室亮度: 0.2, 客廳亮度: 0.5, 廚房亮度: 1.0)
    case .睡覺:
    return 燈光設定(臥室亮度: 0.0, 客廳亮度: 0.0, 廚房亮度: 0.0)
    case .休閒:
    return 燈光設定(臥室亮度: 0.2, 客廳亮度: 0.5, 廚房亮度: 0.2)
    case .讀書:
    return 燈光設定(臥室亮度: 0.8, 客廳亮度: 0.2, 廚房亮度: 0.0)

    }
    }



    }

    var 氣氛: 燈光模式 = .睡覺 {
    didSet {
    燈光 = 氣氛.設定()
    }
    }
    var 燈光: 燈光設定
    var 地址: String?
    var 坪數: Int?
    var 名稱: String?

    init(地址: String, 坪數: Int, 名稱: String) {
    self.地址 = 地址
    self.坪數 = 坪數
    self.名稱 = 名稱
    self.燈光 = self.氣氛.設定()
    }

    func 描述() -> String{

    let 名稱 = self.名稱 ?? "未註明"
    let 地址 = self.地址 ?? "未註明"
    let 坪數 = self.坪數 ?? 0

    return " 名稱: \(名稱) \n 地址: \(地址)\n 坪數: \(坪數)\n \(燈光.描述()) \n"
    }


    }



    let 銅鑼灣的家 = 房子(地址: "500 Hennessy Rd, Causeway Bay", 坪數: 30, 名稱: "銅鑼灣的家")
    銅鑼灣的家.氣氛 = .煮飯
    銅鑼灣的家.燈光.調整(.客廳, 亮度變化: 0.1)
    let 灣仔的家 = 房子(地址: "CNT Tower, 326-338 軒尼詩道灣仔", 坪數: 24,名稱: "灣仔的家")
    灣仔的家.氣氛 = .讀書
    灣仔的家.燈光.調整(.臥室, 亮度變化: -0.2)


    print(銅鑼灣的家.描述())
    print(灣仔的家.描述())