code.club

標題: 一些心得和筆記 [打印本頁]

作者: return    時間: 2015-5-18 22:23
標題: 一些心得和筆記
本帖最後由 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

作者: return    時間: 2015-5-27 21:59
變數函數:
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)

將第一個變數的值指給第二個變數一樣有效。
作者: return    時間: 2015-5-27 22:27
標題: 傳回函數的函數(比較複雜)
本帖最後由 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?

作者: return    時間: 2015-6-5 14:40
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) }

但事先給型態有點多此一舉。
作者: return    時間: 2015-7-3 01:38
var price:Int?
price = 100

if var bookprice = price {
  var msg = "You can buy this book for \(price!)" /*或者寫\(bookprice)就不用加 ! 號
}
作者: return    時間: 2016-4-22 23:10
swift的求餘數可用非整數,例如

var x = 9.8
var y = 2.7
9.8 % 2.7 // 1.7
作者: swift    時間: 2017-1-21 18:09
空字串並非「空」nil
作者: swift    時間: 2017-1-23 02:56
陣列 a = [0,1,2,3,4,5]
a[8]會出錯,但似乎不能給予nil值?
其它類似 tuple 也都有此問題的樣子?
作者: swift    時間: 2017-2-6 00:51
SpriteKit:

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




歡迎光臨 code.club (https://code.club/) Powered by Discuz! X3.2