|
|
|
beroal |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 18.1.2003 Где: Украина Репутация: нет Всего: 3 |
Как у Ruby сделана динамическая типизация? Когда я работал с PHP, мне очень мешала некоторые противные особенности, а именно, что он молча конвертировал нечисловые строки в число ноль, ноль в ложь, если требовался массив - превращал число в массив из одного элемента и т.п. Разумеется, большинство этих преобразований типа были просто ошибками в программе, но отлавливать их из-за этой дурацкой динамической типизации было крайне трудно.
Как у Ruby с этим дела? |
|||
|
||||
Pete |
|
|||
Опытный Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
1. Ruby конвертирует строку в число, например, методом to_i. При этом выражение «"abc".to_i» вернет 0. Если же написать «"abc" + 123», то возникнет ошибка.
2. Числа в массив не конвертируются автоматически, как, например, здесь: «[1, 2, 3] + 5» (здесь «+» используется для объединения массивов). 3. В ruby каждая переменная — объект, то есть true (при проверке условия). nil («ничто», аналог NULL в Си) — false. Так что: irb(main):001:0> puts "!!!!" if 0 !!!! => nil (0 = true); irb(main):002:0> puts "!!!!" if [1, 2, 3] !!!! => nil ([1, 2, 3] = true); irb(main):003:0> puts "!!!!" if nil => nil (nil = false). Это сообщение отредактировал(а) Pete - 1.2.2006, 15:00 -------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
beroal |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 212 Регистрация: 18.1.2003 Где: Украина Репутация: нет Всего: 3 |
Спасибо, это именно то, что я хотел знать. |
|||
|
||||
Pete |
|
|||
Опытный Профиль Группа: Участник Сообщений: 318 Регистрация: 5.1.2006 Где: Москва Репутация: 2 Всего: 12 |
Прошу прощения, to_i — это, конечно же, не оператор, а метод.
-------------------- Совет учиться на ошибках других бесполезен; научиться чему-либо можно только на собственных ошибках. (Бернард Шоу) Не откладывай на завтра то, что можешь сделать сегодня. (Пословица) А теперь выпишем точное значение числа пи... (Препод) Жахни, Пендальф! © Гоблин |
|||
|
||||
Cr@$h |
|
|||
Исследователь Профиль Группа: Участник Клуба Сообщений: 1693 Регистрация: 3.4.2005 Где: Санкт-Петербург, Россия Репутация: нет Всего: 41 |
||||
|
||||
Правила форума "Ruby: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |