为了账号安全,请及时绑定邮箱和手机立即绑定

关于拆包问题

为什么

commaIndex = coordinateString.rangeOfString(",")?.startIndex  使用?拆包

Double(coordinateString.substringToIndex(commaIndex))  不能使用呢,使用还会报错,强制转换不是也可能有值,可能没值吗


正在回答

3 回答

补充,解包操作:

if let a = b {........}  else {..........}           注:b为可选型

guard let a = b  else {..........}               注:b为可选型

0 回复 有任何疑惑可以回复我~

因为,coordinateString.rangeOfString(",")返回值类型是可选型,进行coordinateString.rangeOfString(",")?.startIndex操作是尝试解包(“?”是尝试解包的意思,“.”是解包后执行后面的操作),且之后的结果也是可选型。再用,let...进行解包

而coordinateString.substringToIndex(commaIndex)返回值类型为String,Double(coordinateString.substringToIndex(commaIndex))返回值为可选型,此处之后没有进行其他的操作,因此无需添加“?”。然后,let...进行解包

2 回复 有任何疑惑可以回复我~

可以贴出错误信息看看。

Double(coordinateString.substringToIndex(commaIndex))  不能使用呢,使用还会报错,强制转换不是也可能有值,可能没值吗

强制转换的确是可选类型,可以使用拆包后再使用

if let firstValue = Double(coordinateString.substringToIndex(commaIndex)){
        print(firstValue)
        }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于拆包问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信