Swift 学習メモ2
- xcode6.0.1
基本知識のまとめ
1.関数
1.1.関数の中で関数を記述して呼び出す。
func returnFifteen() -> Int {
var y = 10
func add() {
y += 5
}
add()
return y
}
returnFifteen()
1.2
関数を変数に格納して利用する
javaScriptでよく使うパターン
func makeIncrements() -> (Int -> Int) {
func addOne(number: Int) -> Int {
return 1 + number
}
return addOne
}
var increment = makeIncrements()
increment(1)
* Point
(Int -> Int)
上記はIntで貰った関数をIntで返すという意味。
1.3.1.2を少し複雑にした関数
テストコードも各練習しないとダメだけど、とりあえず関数まで一気につぶす。
func hasAnyMathcers(list: [Int], condition: Int -> Bool) -> Bool {
for item in list {
if condition(item) {
return true
}
}
return false
}
func lessThanTen(number: Int) -> Bool {
return number < 10
}
var numbers = [20, 14, 17, 12]
hasAnyMathcers(numbers, lessThanTen)
*list: [Int], condition: Int -> Bool
配列とIntを引数にとってboolを返す関数を引数にとる
1.4.closure
クロージャー。
柔軟だけど、あんまやりすぎると可読性が落ちるので注意。テストコード必須。
var numbers = [20, 14, 17, 12]
let mappednumbers = numbers.map({number in 3 * number})
mappednumbers
ここまでの感想。
よく出来てる言語です。objective-cは極力使わない方向でiosの開発は進めていきたいですね。
あとはscalaでのプロジェクトの経験が凄い生きてるのが驚きです。scalaは流行らないと見切りをつけたんだけど、何の知識が役に立つかわからないもんですねえ。
2.class
javaとかrubyとかscalaのいいとこ取り。
class Shape {
var numberOfSides = 0
func simpleDescription() -> String {
return "A sharp with \(numberOfSides) sides."
}
}
var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()
さらに続く
参考サイト
0 件のコメント:
コメントを投稿