code.club

 找回密碼
 立即註冊
搜索
查看: 7569|回復: 6
打印 上一主題 下一主題

一些swift容易搞錯的細節

[複製鏈接]
樓主
發表於 2016-8-2 16:51:39 | 顯示全部樓層
var num = 9
var str = "1"

var test = String(num) + str --> "91"

但如果是
var test = num + Int(str)! 一定要有解包 !

因為 str 中未必剛好是數字型的字符,例如 str = "kk" 就無法變成 Int(str) ,故這點就屬於 optional 變數。要先解包確定可以才加。
回復 支持 反對

使用道具 舉報

沙發
發表於 2016-8-29 21:47:03 | 顯示全部樓層
var dict = ["one":1, "two":2, "three":3, "four":4]
若要對字典中的值進行運算,則要先解包。
例如: dict["one"]! + dict["three"]

而陣列和元組則都不用,直接拿出來就可運算。
例如:
array[2] + array[3]
tuple.0 + tuple.1

不知為何如此?
回復 支持 反對

使用道具 舉報

板凳
發表於 2016-8-30 18:25:05 | 顯示全部樓層
func 可以加或不加外部名稱,但如果有外部名稱者,在呼叫時就只能用外部名稱,原先沒有外部名稱者,則要用內部名稱。
closure 則不能有外部名稱,而且呼叫時也不能加上內部名稱。

func t1(x:String, y:Int) {}
func t2(theX:String, theY:Int) {}
var closure1 = {(x:String, y:Int) in ...}

t1(x:"hello", y:199)
t2(theX:"hello", theY:199)
colosure1("hello", 199)
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|手機版|Archiver|code.club  

GMT+8, 2024-5-3 10:38 , Processed in 0.095536 second(s), 15 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表