看板 MacDev 關於我們 聯絡資訊
作者: lisa090914 (好天氣,好心情~) 看板: MacDev 標題: [問題] 用split分割字串後轉成Double 時間: Sat Mar 2 20:12:29 2019 我想要把兩個數字以逗號隔開的字串,分開存成兩個Double 例如:(input) "12,34" -> (output) 12 & 34 用split得到回傳的陣列之後,因為裡面是subString的形式,所以必須先轉成String 然而在String(subString) 的時候,得到了這個錯誤訊息: 'init' has been renamed to 'init(describing:)' 修正之後,在後面轉成Double時卻得到nil 詳細如下圖 https://i.imgur.com/elcpo39.png
google到的解法是說加上 import Foundation 就能解決,但我加了錯誤還在QQ 另外發現 String(describing: splitedStr.first) 回傳的是 "Optional("-7")" , 我猜這應該是造成後面轉成Double會得到nil的原因 想請問版上大大這個問題該怎麼排除? 感激不盡 m(_ _)m ps. 使用環境 XCode 9.2,Swift 4.0 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.91.236 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1551528752.A.9B2.html
darktt: 當然是先unwrap啊,Double的init是一定要非optional的型 03/02 20:59
darktt: 態,你不能直接將還沒unwrap的變數傳進去 03/02 20:59
darktt: 另外,無論哪個程式語言都一樣,不要過度使用包洋蔥的作 03/02 21:04
darktt: 法,你無法知道這行的那邊出了問題 03/02 21:04
※ Deleted by: lisa090914 (140.114.225.19) 03/02/2019 22:55:07 -- 本文經原作者同意回復 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.43.139 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1552885230.A.6FB.html
XXXXLAY: ! 27.247.230.142 03/18 13:08
tentenlee: 這東西一行就可以解決了呀 220.132.180.49 03/18 15:57
tentenlee: https://jdoodle.com/a/14Ox 這樣 220.132.180.49 03/18 16:03
tentenlee: ?? 0的部分就看你轉不成功的時候要 220.132.180.49 03/18 16:04
tentenlee: 甚麼當預設值就好了 若要可回傳null 220.132.180.49 03/18 16:04
tentenlee: 將你的map改成compactMap就好 220.132.180.49 03/18 16:05
tentenlee: 說錯compactMap會自動把nil刪除 220.132.180.49 03/18 16:07
tentenlee: 在連結內改好並說明了 有問題再提出 220.132.180.49 03/18 16:22