亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于拆包問題

為什么

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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號