Вопросы
Безопасное приведение long к int в Java
Какой самый идиоматичный способ в Java проверить, что преобразование из long в int не приведет к потере информации?
Вот моя текущая реализация:
public static int safeLongToInt(long l) { int i = (int)l; if ((long)i != l) { throw new IllegalArgumentException(l + " не может быть...
Когда следует использовать reinterpret_cast?
Я немного запутался в применении reinterpret_cast
и static_cast
. Из того, что я прочитал, общие правила таковы: следует использовать static_cast
, когда типы могут быть интерпретированы на этапе компиляции, поэтому и слово static
. Это именно тот каст, который компилятор C++ использует...
Как преобразовать строку в число в PHP?
Я хочу преобразовать такие значения, как '3', '2.34', '0.234343' и т.д. в числовой формат. В JavaScript для этого можно использовать Number(), но есть ли аналогичный метод в PHP?
Входные данные Выходные данные '2' 2 '2.34' 2.34 '0.3454545' 0.3454545
Почему стоит использовать static_cast<T>(x) вместо (T)x?
Я слышал, что функцию static_cast следует предпочитать кастингу в стиле C или простому вызову функции для приведения типов. Это правда? Почему?
Сравнение регулярного приведения типов, static_cast и dynamic_cast
Суть проблемы:
Я пишу на C и C++ почти двадцать лет, но есть один аспект этих языков, который я никогда не понимал. Я, конечно, использовал обычные преобразования (касты), например:
MyClass *m = (MyClass *)ptr;
Но есть еще два типа приведения типов, и я не знаю, чем они...
Почему операторы присваивания сCompound типа в Java (+=, -=, *=, /=) не требуют приведения типов?
Описание проблемы:
Я всегда считал, что следующий код:
i += j;
является просто короткой записью для:
i = i + j;
Однако, если мы попробуем следующий код:
int i = 5;
long j = 8;
то выражение i = i + j;
не компилируется, в то время как i += j;
...