перевод с официального сайта http://www.ruby-lang.org
PHP широко используется для разработки web-приложений, однако если вы собираетесь попробовать Ruby on Rails или хотите писать на языке предназначенном для общего использования, то Ruby это то что вам нужно.
Сходства
Различия
PHP широко используется для разработки web-приложений, однако если вы собираетесь попробовать Ruby on Rails или хотите писать на языке предназначенном для общего использования, то Ruby это то что вам нужно.
Сходства
- Ruby как и PHP имеется механизм динамической типизации данных. Вы можете определять перменные непосредственно во время выполнения сценария.
- Имеются классы, и вы можете контролировать доступ к ним, идентично PHP 5 присутсвуют public, private и protected уровни доступа.
- Некоторые переменные также начинаются с $, как в PHP (но не все)
- В Ruby присутсвует eval функция.
- Вы также может использовать строчную интерполяцию. ”$foo is a $bar” вы можете написать как ”#{foo} is a #{bar}” — как и в PHP, это не распространяется на одиночные кавычки.
- Идентичный heredoc механизм и синтаксис.
- В Ruby есть исключения (exceptions -> raise или fail), как в PHP 5
- Также имеется огромная библиотека стандартных механизмов.
- Массивы (array) и хэш-массивы (hashes) устроены подобным образом, если вы замените конструкцию
array()
на{
и}, то
PHParray('a' => 'b')
превратится Ruby{'a' => 'b'}
. true
иfalse
устроены аналогично PHP, ноnull
обозначаетсяnil
Различия
- В Ruby строгая типизация данных. Вы должны использовать методы .to_s, .to_i и т. д. для конвертации строк, чисел и т.д. вместо того чтобы оставлять эту работу языку.
- Строки, числа, массивы, хэш-массивы и все остальные сущности в Ruby являются объектами.
- Скобки не являются обязательными при вызове метода, кроме тех случчаев когда нееобходимо передать параметры в тело метода
- Вместо соблюдения оговоренного пространства имён например таких как подчеркивания (Underscores) или camelCase, стандартные библиотеки и расширения оформлены в классы и модули.
- Reflection изначально имеется в объектах, вам не нужно подключать Reflection классы как в PHP 5
- Переменные Ruby передаются по ссылкам. Присваивая переменной объект вы ссылаетесь на него, а не получаете копию.
- В Ruby нет абстрактных классов (abstract classes) или интерфейсов (interfaces)
- Хэш-массивы (hashes) и массивы (arrays) не являются взаимозаменяемыми
- Только false и nil являются false, а вот 0, array() и пустая строка "" в теле условия определяются как true.
- Практически все действия являются вызовом того или иного метода, даже raise (throw в PHP).
Комментариев нет:
Отправить комментарий