変数をバイナリ演算子に代入するときの型推論のポリシーはありますか? arrayOfInts
でスワイプ配列の型は、演算子への代入とどのように扱われますか?
let arrayOfInts = [1,2,3]
let arrayOfDoubles = [1.0, 2.0, 3.0]
// arrayOfInts == arrayOfDoubles
// Binary operator '==' cannot be applied to ... [Int] [Double]
[1,2,3] == [1.0, 2.0, 3.0] // works?
リテラルは '[NSNumber]'や '[Double]'にアップキャストされているかもしれませんが、なぜか分かりません。 – matt
配列のない簡単な例: '1.0 == 1'がコンパイルされますが、' let x = 1.0; y = 1とする。 x == y'はそうではありません。 –
しかし、Swiftの型推論が時には何と違うのかが示されている[Strange Swift numbers type casting](http://stackoverflow.com/questions/28813516/strange-swift-numbers-type-casting)を見てください。 (他の言語と比較して)期待されるかもしれない。 –