美文网首页
Swift中enum的使用3

Swift中enum的使用3

作者: 盖小聂 | 来源:发表于2019-06-28 18:47 被阅读0次
enum IntOrString {
    case IntValue(Int)
    case StringValue(String)
}

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //Swift中我们在一个集合中只能放同一个类型的元素,
        //enum可以带有值的特点,将类型信息封装到特定的enum中
        let mixed = [IntOrString.IntValue(1), IntOrString.StringValue("two"),IntOrString.IntValue(3)]
        for value in mixed {
            switch value {
            case let .IntValue(i): print(i * 2)
            case let .StringValue(s): print(s.capitalized)
            }
        }
    }
}

补充说明:

  • Swift中我们在一个集合中只能放同一个类型的元素。
  • 如果我们要把不同类型放到同一个容器类型中的话,一个比较容易想到的是使用Any或者AnyObject,或者是使用NSArray
import UIKit
let mixed: [Any] = [1, “two”, 3]
//如果不指明类型,由于UIKit的存在将被推断为[NSObject]
let objectArray = [1, “two”, 3] 
  • 其实我们注意到,Any其实是protocol,而不是具体的某个类型。因此就是说其实在容器类型泛型的帮助下,我们不仅可以在容器中添加同一具体类型的对象,也可以添加实现了同一接口的类型对象。

相关文章

网友评论

      本文标题:Swift中enum的使用3

      本文链接:https://www.haomeiwen.com/subject/xqnecctx.html