inf
これは明らかに無限大を意味しますが、float の最大値に達したときに表示されますか?
これは実際には ObjC の一部ではありませんが、無限値を保持するときにNSNumber
これを使用します。-description
an 内の実際の値NSNumber
は adouble
であり、これは C で定義されています。実際、その定義はプラットフォームに大きく依存しています。ただし、ほとんどのプラットフォームでは、IEEE-754 binary64
. IEEE 754 標準では、正と負の無限大と有限値の値を持つ、アフィン拡張された実数直線が定義されています。また、有限計算が無限にオーバーフローするさまざまな方法と、コードでそれを制御する方法を正確に定義します。しかし、原則として、そうです。計算が a の最大有限値を超えると、double
正の無限大になります。
nan
これは正確には何を意味し、この値はいつ表示されますか?
これも主に C と IEEE-754 に関するものであり、ObjC に関するものではありません (繰り返しますが、 の を除く-description
) NSNumber
。ウィキペディアには に関する良いページがありますNaN
が、簡単に言えば「非数」を意味し、 のように、適切な値がなく、無限でさえない場合 (またはあまりにも多くの異なる値があいまいな場合) に使用されます0/0
。
nil
私はこれを知っていると思います。割り当てられていないオブジェクトのインスタンス。とにかくこのリストに属していると思いました。
nil
オブジェクトのインスタンスではありません。指すインスタンスがない場合にnil
使用される空のポインタです。基本的にorと同等です。(id)0
(NSObject *)0
でも「割り振られていないオブジェクト」はオブジェクトじゃないし、存在しないから……そもそもそういう話に意味があるという意味でnil
は、ポインターとでも言うべきか。それに。
null
これについてはよくわかりませんが、似ていると思いますnil
か?
+[NSNull null]
値は、実際には存在するが何も表さないプレースホルダー オブジェクトとして使用されますNSArray
。
null
また、空のポインタを C 文字列 (たとえば ) として出力しようとすると表示される場合がありますNSLog(@"%s", 0)
。しかし、これが表示されるコードは、実際には正当な C または ObjC コードではありません。
また、空のポインタを意味する と混同されることがよくnull
あります。NULL
したがって、id
、NSObject *
、NSSomeOtherClass *
などがあり、それが指すものが何もない場合は、 を使用しますnil
。のような ObjC 以外の値へのポインターがあり、int *
それが指すものが何もない場合は、 を使用しますNULL
。空のポインタをコレクションに入れたい場合は、 を使用しますnull
。