为什么
commaIndex = coordinateString.rangeOfString(",")?.startIndex 使用?拆包
Double(coordinateString.substringToIndex(commaIndex)) 不能使用呢,使用还会报错,强制转换不是也可能有值,可能没值吗
补充,解包操作:
if let a = b {........} else {..........} 注:b为可选型
guard let a = b else {..........} 注:b为可选型
因为,coordinateString.rangeOfString(",")返回值类型是可选型,进行coordinateString.rangeOfString(",")?.startIndex操作是尝试解包(“?”是尝试解包的意思,“.”是解包后执行后面的操作),且之后的结果也是可选型。再用,let...进行解包
而coordinateString.substringToIndex(commaIndex)返回值类型为String,Double(coordinateString.substringToIndex(commaIndex))返回值为可选型,此处之后没有进行其他的操作,因此无需添加“?”。然后,let...进行解包
可以贴出错误信息看看。
Double(coordinateString.substringToIndex(commaIndex)) 不能使用呢,使用还会报错,强制转换不是也可能有值,可能没值吗
强制转换的确是可选类型,可以使用拆包后再使用
if let firstValue = Double(coordinateString.substringToIndex(commaIndex)){ print(firstValue) }