2008-12-09 123 views
2

如何在運行時檢查值的類型?如何檢查值類型?

我想知道我在哪裏創建雙打。

+0

這對C來說是不可能的。與使用typeid或重載解析的C++不同。或者你尋找編譯器特定的解決方案? – 2008-12-09 23:56:06

+0

既然你用「iphone」標記了你的問題,我想你的意思是Objective-C而不是「正常」C.如果是這樣,請重新提出你的問題。 – strager 2008-12-09 23:56:55

+0

你指的是一個NSValue嗎? – 2008-12-10 01:13:57

回答

3

如果您使用的是Objective-C類,則可以使用[myObject isKindOfClass: [InterestingClass class]]測試。如果你使用原始類型(你的問題引用「double」類型,建議),那麼你不能。然而,除非你做了一些非常時髦的東西,編譯器可以告訴你什麼時候基本類型匹配或不匹配,什麼時候不會執行到所需類型的隱式提升。

瞭解更多關於您想要解決的具體問題的信息會對您有所幫助,因爲解決方案可能不涉及檢測雙打的創建:-)。

0

除了極少數例外,您無需在運行時檢查類型。類型變量只能保存其分配的類型,並且類型提升在編譯時確定。