Swift 关联值 枚举的 case可以用来传值

12 min read
import UIKit

enum Trade {
    case Buy(stock:String,amount:Int)
    case Sell(stock:String,amount:Int)
}

let trade = Trade.Buy(stock: "003100", amount: 100)

switch trade {
    case .Buy(let stock,let amount):
        
        print("stock:\(stock),amount:\(amount)")
        
    case .Sell(let stock,let amount):
        print("stock:\(stock),amount:\(amount)")
}

定义了一个名为Trade的枚举,其中包含两种情况:BuySellBuy情况有两个关联值,stockamount,而Sell情况也有两个关联值,stockamount

然后,你使用值Trade.Buy(stock: "003100", amount: 100)创建了一个Trade的实例。

接下来,你有一个switch语句,匹配trade的值。如果值是Buy,则使用let绑定语法将关联值绑定到常量stockamount,然后打印包含这些值的消息。如果值是Sell,则使用let绑定语法将关联值绑定到常量stockamount,然后打印包含这些值的消息。

在这种情况下,由于trade的值为Trade.Buy(stock: "003100", amount: 100),将打印的消息为:"stock:003100,amount:100"。