iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 23
0
Software Development

iOS 從 Objective-c 進化為 Swift 的 30天之旅系列 第 23

[Day 23] Swift Struct 基本介紹運用

前言

最近找到要去的工作了
之前面試的30幾家公司
有一家薪水很高
應徵我要去做cordova
以及使用PHP串接遊戲
但我心裡很掙扎
畢竟我沒有很會PHP跟做網頁
雖然薪水很高 但我覺得做自己喜歡的工作
上班才會開心 比較有動力去打拼
所以我索性寄信給公司
感謝他們錄取我以及給這麼高薪水
但我也不識貪圖錢的人
因為我知道公司現階段需求即戰力人才
跟我的技能有些出入
為了公司好我忍痛放棄此次機會
結果過了幾天後
收到一家公司邀我去面試
說是我放棄那家公司的朋友開的
對我很有興趣
邀我進入公司一起寫APP
並且給我一樣的薪資
我想 我應該給自己一個機會
去這家公司試試看
畢竟目前剛買房子
存款歸零 剛好公司倒了 OC人才又沒人要
根本是人生低潮

Struct

基本上與Class差不多
可以宣告
並且給予init值
如以下程式碼

struct TestStruct {
    let product: String
    init(name : String) {
        self.product = name
    }
}

使用方式
可以在程式裡呼叫

let testStruct = TestStruct(name: "小海螺")
print(testStruct.product)

就可以得出product等於小海螺
當然裡面也可以塞方法在裡面

struct TestStruct {
    let product: String
    init(name : String) {
        self.product = name
    }
    
    let money:Int = 150
    func showPrice() {
        print(self.money)
    }
}

這樣如果要呼叫showPrice的話
如以下程式碼

let testStruct = TestStruct
testStruct.showPrice()

就可以得出money等於150
其實init可以不用填入
swift會自動填入struct 裡面缺少的變數
也可以使用Enum去豐富他

enum TestEnum {
    case productA 
    case productB
    case productC
    case productD
}
struct TestStruct {
    let product : TestEnum
    let money :Int
    let date :String
}

在程式裡面呼叫他

let testStruct = TestStruct(product: .productA, money: 150, date: "2018-10-10")
print(testStruct.product)
print(testStruct.money)
print(testStruct.date)

就可以得出我要的

productA
150
2018-10-10

結束
下次我要去找看看struct 與 class到底差別在哪邊


上一篇
[Day 22] Swift Date 進階 (現在星期幾 /這個月有幾天)
下一篇
[Day 24] Swift SQLite.swift 回傳Value Binding 轉換教學
系列文
iOS 從 Objective-c 進化為 Swift 的 30天之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言