code.club

 找回密碼
 立即註冊
搜索
查看: 979|回復: 8

一些心得和筆記

[複製鏈接]
發表於 2015-5-18 22:23:38 | 顯示全部樓層 |閱讀模式
本帖最後由 return 於 2015-7-3 01:36 編輯

swift的變數一定要先賦予初值如下:

var x
x = 100
....

or

var y:Int
y=123
var x = y*2
...

還有,如下:

var x = 100
var y = x*2 /* 200
x = 111
println(y) /*還是為200
println(x) /* 111
println(y) /*還是為200
回復

使用道具 舉報

 樓主| 發表於 2015-5-27 21:59:33 | 顯示全部樓層
變數函數:
func hello(name:String, word:String, time:Int) -> String {
return "\(name) says \(word) at \(time) oclock."
}

var good1: (String, String, Int)->String
good1 = hello
good1("John", "How are you?", 12)
var good2: (String, String, Int) -> String

good2 = good1
good2("Tome","Good day!", 9)

將第一個變數的值指給第二個變數一樣有效。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2015-5-27 22:27:55 | 顯示全部樓層

傳回函數的函數(比較複雜)

本帖最後由 return 於 2015-5-27 22:30 編輯

func happy() ->String {
return "I am happy now."
}

func angry() ->String {
return "I am angry !"}

func feeling(mood:Int) -> (()->String) { /*可以把()->String視為一個回傳型別,所以可以用()括起來。*/
    if mood == 8 {
        return happy
    }
    else {
        return angry
    }
}

var now = feeling(8) /* now 為一fun(),即是傳happy()給now() */
var mynow = now() /*再將now()的回傳值給mynow,便是答案。 */
var then = feeling(2)
var mythen = then() //不能再用mynow?
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2015-6-5 14:40:31 | 顯示全部樓層
closure的一些用法:

一般來說,一個closure是要賦予某個變數或常數之用,該變數或常數假設是 X,本身並不需要事先定義任何型態,就和其他情形一樣。例如

var x = { (name:String, price:Int) ->String in return "\(name) is sold for \(price) dollars." }
前面的X不用事先給予型態。但如果要給也可以,例如:
var y : (String) -> String = { (name:String) -> String in return "hello \(name)" }
而且還可以寫成如下:
var z : (String) -> String = { (name) -> String in return "good morning " + (name) }

但事先給型態有點多此一舉。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2015-7-3 01:38:31 | 顯示全部樓層
var price:Int?
price = 100

if var bookprice = price {
  var msg = "You can buy this book for \(price!)" /*或者寫\(bookprice)就不用加 ! 號
}
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2016-4-22 23:10:54 | 顯示全部樓層
swift的求餘數可用非整數,例如

var x = 9.8
var y = 2.7
9.8 % 2.7 // 1.7
回復 支持 反對

使用道具 舉報

發表於 2017-1-21 18:09:37 | 顯示全部樓層
空字串並非「空」nil
回復 支持 反對

使用道具 舉報

發表於 2017-1-23 02:56:11 | 顯示全部樓層
陣列 a = [0,1,2,3,4,5]
a[8]會出錯,但似乎不能給予nil值?
其它類似 tuple 也都有此問題的樣子?
回復 支持 反對

使用道具 舉報

發表於 2017-2-6 00:51:40 | 顯示全部樓層
SpriteKit:

Allows Rotation:指定是否允許旋轉。在本例中,你不希望小球旋轉。
Friction:這個屬性也很簡單,在我們的例子中要除去所有的摩擦。
Restitution:是指對象的彈力。其值設置為1意味著,當小球與物體碰撞時將保持原來完整的彈性。簡言之,這意味著:小球會以與最初同等的作用力彈回來。
Linear Damping(線性阻尼):通過減少物體的線性速度來模擬流體或空氣摩擦。在本例遊戲中,小球移動時不應該減速。所以,在上面你需要設置阻尼為0。
Angular Damping(角阻尼):除了角速度外,它與線性阻尼是相同的。當你不允許球旋轉時將此值設置為可選的
回復 支持 反對

使用道具 舉報

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

本版積分規則

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

GMT+8, 2017-10-22 01:44 , Processed in 0.038123 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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