Как проверить, к какому типу относится переменная? - PullRequest
2 голосов
/ 06 января 2011

Я хочу знать, имеет ли someVariable тип int или float. Как бы я сделал чек?

Редактировать: в коде во время выполнения! В IDE это было бы просто. Я хочу знать, есть ли какой-нибудь оператор typeof, чтобы узнать, имеете ли вы дело с int, float, long, char, unsigned char, long long или чем-то другим.

Ответы [ 3 ]

10 голосов
/ 06 января 2011
if ((1?1:var)/2) {
    /* it's floating point */
} else {
    /* it's an integer */
}
2 голосов
/ 06 января 2011

Является ли someVariable NSNumber? Если это примитивный тип C (фактический int или float), то вы уже будете знать, потому что он может быть объявлен только как одна из этих вещей, и компилятор (и Xcode) обеспечит это. Как отметил другой комментатор, дважды щелкните по имени, чтобы найти объявление в Xcode.

0 голосов
/ 06 января 2011

Поскольку sizeof (float) == sizeof (int) (в зависимости от платформы, но на i386 и текущем iPhone это допустимо) - я считаю, что во время выполнения вы не можете решить, является ли ваша переменная int или float.
РЕДАКТИРОВАТЬ: Грег прав в комментарии.Эта проверка на самом деле не имеет смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...