var a = 7
a != nil //Error: value of type 'Int' can never be nil, comparison isn't allowed
7 != nil //--> false
0 > nil //true
-9999999 > nil //true
質問非常に上記のコードのように、[OK]を私はそれがnil
でa
を比較することはできませんコンパイラからそれを得たが、なぜリテラル7
はnilにして比較することができます。私は7
が作成された既存の番号であることを意味します、それは決してnil
でもありませんか?通常の型付き変数はnilと比較することはできませんが、リテラル缶はなぜですか?
ところで 私もtrue
を返し-9999999 > nil
をしようとすると、私が最終的に正しい方法でnil
を知って始めます。 10分前に私はまだ-1 < nil
がtrue
を返すと思います。 nil
についてもう少し詳しく教えていただければ幸いです。それは何ですか?これはポインタではありません(Object-Cと異なります)。それは単に気づくだけですか?
比較http://stackoverflow.com/questions/33216358/swift-operators-and-nilおよびhttp://stackoverflow.com/questions/26172911/swift-nil-has-a-numeric-value –
@MartinR提供された情報をありがとう – SLN