美文网首页
Swift枚举相关值

Swift枚举相关值

作者: 飘金 | 来源:发表于2017-04-27 17:25 被阅读0次

例如,假设一个库存跟踪系统需要利用两种不同类型的条形码来跟踪商品。有些商品上标有 UPC-A 格式的一维码,它使用数字 0 到 9。每一个条形码都有一个代表“数字系统”的数字,该数字后接 10 个代表“标识符”的数字。最后一个数字是“检查”位,用来验证代码是否被正确扫描:

其他商品上标有 QR 码格式的二维码,它可以使用任何 ISO8859-1 字符,并且可以编码一个最多拥有 2,953 字符的字符串:

对于库存跟踪系统来说,能够把 UPC-A 码作为三个整型值的元组,和把 QR 码作为一个任何长度的字符串存储起来是方便的。

在 Swift 中,用来定义两种商品条码的枚举是这样子的:

enumBarcode{caseUPCA(Int,Int,Int)caseQRCode(String)}

Swift

以上代码可以这么理解:

“定义一个名为Barcode的枚举类型,它可以是UPCA的一个相关值(Int,Int,Int),或者QRCode的一个字符串类型(String)相关值。”

这个定义不提供任何Int或String的实际值,它只是定义了,当Barcode常量和变量等于Barcode.UPCA或Barcode.QRCode时,相关值的类型。

然后可以使用任何一种条码类型创建新的条码,如:

varproductBarcode=Barcode.UPCA(8,85909_51226,3)

Swift

以上例子创建了一个名为productBarcode的新变量,并且赋给它一个Barcode.UPCA的相关元组值(8, 8590951226, 3)。提供的“标识符”值在整数字中有一个下划线,使其便于阅读条形码。

同一个商品可以被分配给一个不同类型的条形码,如:

productBarcode=.QRCode("ABCDEFGHIJKLMNOP")

Swift

这时,原始的Barcode.UPCA和其整数值被新的Barcode.QRCode和其字符串值所替代。条形码的常量和变量可以存储一个.UPCA或者一个.QRCode(连同它的相关值),但是在任何指定时间只能存储其中之一。

像以前那样,不同的条形码类型可以使用一个 switch 语句来检查,然而这次相关值可以被提取作为 switch 语句的一部分。你可以在switch的 case 分支代码中提取每个相关值作为一个常量(用let前缀)或者作为一个变量(用var前缀)来使用:

switch productBarcode

{

case.UPCA(let numberSystem,let identifier,let check):

print("UPC-A with value of\(numberSystem),\(identifier),\(check).")

case.QRCode(let productCode):

println("QR code with value of\(productCode).")

}// 输出 "QR code with value of ABCDEFGHIJKLMNOP.”

Swift

如果一个枚举成员的所有相关值被提取为常量,或者它们全部被提取为变量,为了简洁,你可以只放置一个var或者let标注在成员名称前:

switch productBarcode

{

case let .UPCA(numberSystem,identifier,check):

print("UPC-A with value of\(numberSystem),\(identifier),\(check).")

case let .QRCode(productCode):

print("QR code with value of\(productCode).")

}// 输出 "QR code with value of ABCDEFGHIJKLMNOP."

相关文章

  • Swift与OC的语法简单对比(常用语法二)

    20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...

  • Swift枚举相关值

    例如,假设一个库存跟踪系统需要利用两种不同类型的条形码来跟踪商品。有些商品上标有 UPC-A 格式的一维码,它使用...

  • Swift教程之枚举

    枚举 C语言中,C枚举将相关名称分配给一组整数值,而Swift枚举不必为每个枚举值提供一个值。若为每个枚举值提供了...

  • iOS中Swift从开始入门到最后的放弃(六),

    # Swift枚举 枚举是由用户定义的数据类型的一组相关值。关键字 `enum` 用来定义枚举数据类型。 ###枚...

  • Swift4-枚举

    枚举 1.枚举为一组相关值定义了一个通用类型,从而可以让你在代码中类型安全地操作这些值。 2.Swift 的枚举成...

  • swift之 枚举(Enumeration)

    swift的枚举用于管理一组相关的有限的值的集合。 C语言中枚举值是一系列的整数(Integer Values),...

  • Swift - 枚举

    Swift - 枚举 枚举在C和Swift中有所不同, Swift中的枚举, 更加灵活, 更加强大 C 值类型: ...

  • Swift3.0-枚举

    枚举 在 C 语言中,枚举会为一组整型值分配相关联的名称。Swift 中的枚举更加灵活,不必给每一个枚举成员提供一...

  • 15.Swift学习之枚举

    枚举介绍 概念介绍枚举定义了一个通用类型的一组相关的值,可以在代码中以一个安全的方式来使用这些值Swift中的枚举...

  • Swift 5.1 (8) - 枚举类型

    级别: ★☆☆☆☆标签:「iOS」「Swift 5.1」「枚举」「迭代枚举」「枚举关联值」「递归枚举」作者: 沐灵...

网友评论

      本文标题:Swift枚举相关值

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