この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。
「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。
The Swift Programming Language: About Swift
読んだ所
今回は下のAbout Swift
とA Swift Tour
を読みました。
The Swift Programming Language: About Swift
The Swift Programming Language: A Swift Tour
発見・感想
型の変換
下のようにDoubleで宣言するとIntからDoubleに変換してくれる模様です。
let double: Double = 70 print(double) // → Double型が入っている
CGFloat
もOKでした。
let float: CGFloat = 70 print(float)
もちろんStringへの変換は不可
let string: String = 70 // これはエラーになる print(string)
IntをStringに変換する際は下のように明示的にやる必要があります。
let string: String = String(70) print(string)
配列とディクショナリの宣言
時々忘れてしまうのですが配列とディクショナリは下のように宣言します。
今回初めて知ったのですがdynamicType
というメソッドでクラスの型を取る事ができるようです。
let arr = [String]() let dic = [String: String]() print(arr.dynamicType) // → Array<String> print(dic.dynamicType) // → Dictionary<String, String>
意外だったのですが[]
という書き方はArray
でなくNSArray
になりました。
混乱するので極力[]
は避けた方が良さそうですね。
var arr = [] print(arr.dynamicType) // → __NSArray0 arr.mutableCopy().addObject("") // → 実際に`NSMutableArray`にしかない`addObject`メソッドも呼べました var arr2 = [String]() print(arr2.dynamicType) // → Array<String> let dic = [:] // → ディクショナリも同じ結果でした print(dic.dynamicType) // → __NSDictionary0
中身を入れるとArray
になってくれました。
このルールは混乱しますね。
var arr = [""] print(arr.dynamicType) // → Array<String>
まとめ
今回は入門的なところを読んだのですがかなり学びが多くて面白かったです。
宣言時の型等は仕事をしていると意識しないので勉強しなおしてよかったと思います。