- Swift part3
81 :デフォルトの名無しさん[sage]:2014/08/17(日) 13:19:14.20 ID:V8SXHhEt - 無限ループこわい
struct S { var a: Int = 0 { didSet { println("a did set: ¥(a)") b = a + 1 } } var b: Int = 0 { didSet { println("b did set: ¥(b)") a = b + 1 } } } var s = S(a: 0, b: 0) s.a = 1 a did set: 1 b did set: 2 a did set: 3 b did set: 4 a did set: 5 b did set: 6 a did set: 7 …
|
- Swift part3
82 :デフォルトの名無しさん[sage]:2014/08/17(日) 13:26:01.14 ID:V8SXHhEt - >>80
上は Foundation.NSDictionary になるからダメ 下は Swift.Dictionary<String, Any> だからおk ちな var d = ["a": 10, "b": "BBB"].mutableCopy() d.setObject("123", forKey: "C") println(d.description) { C = 123; a = 10; b = BBB; } NSMutableDictionaryにしてもSwiftのsubscript持ってないから使いにくいね
|
- Swift part3
83 :デフォルトの名無しさん[sage]:2014/08/17(日) 13:29:48.59 ID:V8SXHhEt - あ、勘違い
NSMutableDictionary でも subscript 使えたわw var d = ["a": 1, "b": "2"].mutableCopy() as NSMutableDictionary d["c"] = 9 println(d)
|
- Swift part3
84 :デフォルトの名無しさん[sage]:2014/08/17(日) 13:31:26.48 ID:V8SXHhEt - あ、mutableCopy() なくてもいけたw
var d = ["a": 1, "b": "2"] as NSMutableDictionary d["c"] = 9 println(d) 連レススマソ
|
- Swift part3
92 :デフォルトの名無しさん[sage]:2014/08/17(日) 15:47:24.27 ID:V8SXHhEt - NSMutableDictionaryは参照型だから別に整合性はある
AnyやAnyObjectは祖先クラスじゃないから、[1, "a"]ってしたときに共通の祖先クラスがなくてSwiftの世界じゃ型を決められない 共通の祖先クラスがあればちゃんと型推論働く class Sup {} class SubA : Sup {} class SubB : Sup {} class SubC : Sup {} var arr = [SubA(), SubB()] // <-ちゃんと[Sup]型になる arr.append(SubC()) // [Sup]型だからSubCも突っ込める
|