code.club

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

一些swift容易搞錯的細節

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2016-5-14 02:12:01 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 birdy 於 2016-5-14 02:13 編輯

元組宣告:

var t1: (x:Int, y:String) = (x:123, y:"hello") --> ok
t1.x -->ok
t1.y -->ok

var t2 = (x:123, y:"hello") -->ok
t2.x -->ok
t2.y -->ok

var t3: (Int, String) = (x:123, y:"hello") -->ok

t3.x -->wrong
t3.y -->wrong




回復

使用道具 舉報

沙發
 樓主| 發表於 2016-5-15 00:55:20 | 顯示全部樓層
本帖最後由 birdy 於 2016-5-15 01:40 編輯

swift的類型轉換必須所有運算元都要轉換,不能只換一個。

var x = 5
var y = 2
Float(x) / Float(y) 2.5


swift的求餘數 % 不限於整數而已。

9.9 % 2.5 == 2.4
回復 支持 反對

使用道具 舉報

板凳
 樓主| 發表於 2016-5-16 02:30:16 | 顯示全部樓層
var arr = [1,3,5,7,9]
for i in arr {
print(i)
}

這裡的 i 預設是常數,而非變數。除非這樣寫, for var i in arr {....}
回復 支持 反對

使用道具 舉報

地板
 樓主| 發表於 2016-5-20 14:39:08 | 顯示全部樓層
本帖最後由 birdy 於 2016-8-2 16:52 編輯

字串型的陣列,str[]裡面不能放數字,而是要放 index 型別的變數。
而str.endIndex指的位置類似C語言中的'\0',例如 str = "hello",str.endIndex == 5,而str[str.endIndex.predecessor()] 才是最後一個字母 "o"。不能用減的如  str.endIndex - 1 .
回復 支持 反對

使用道具 舉報

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

本版積分規則

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

GMT+8, 2024-5-3 07:29 , Processed in 0.080391 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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