深入解析Swift语言编程中的可选链

2020-01-08 22:36:54丽君

   init(radiusname: String) { self.radiusname = radiusname }
}

class circumference {
   var circumName: String?
   var circumNumber: String?
   var circumarea: String?
   
   func buildingIdentifier() -> String? {
      if circumName != nil {
         return circumName
      } else if circumNumber != nil {
         return circumNumber
      } else {
         return nil
      }
   }
}

let circname = rectangle()
circname.print?[0] = radius(radiusname: "Diameter")

let printing = circle()
printing.area.append(radius(radiusname: "Units"))
printing.area.append(radius(radiusname: "Meter"))
circname.print = printing

var area = ["Radius": [35, 45, 78, 101], "Circle": [90, 45, 56]]
area["Radius"]?[1] = 78
area["Circle"]?[1]--

println(area["Radius"]?[0])
println(area["Radius"]?[1])
println(area["Radius"]?[2])
println(area["Radius"]?[3])


println(area["Circle"]?[0])
println(area["Circle"]?[1])
println(area["Circle"]?[2])


当我们使用 playground 运行上面的程序,得到以下结果。

 


Optional(35)
Optional(78)
Optional(78)
Optional(101)
Optional(90)
Optional(44)
Optional(56)

对于下标可选的值可以通过参考其下标值来访问。它可访问为 subscript[0], subscript[1]等。radius 的默认值下标首先被指定为 [35,45,78,101] 和 Circle[90,45,56]。然后,下标值作为 Radius[0] 至78,以及Circle[1]〜45。

链接链的多层次性
多个子类也可以凭借其超类的方法,属性和下标通过可选链接联系。

可选的多个链可以链接:

如果检索类型是不可选的,可选链会返回一个可选值。例如,如果字符串通过可选链就会返回字符串?值

复制代码
class rectangle {
   var print: circle?