Самый краткий способ протестировать строковое равенство (не возражают равенству) для строк Ruby или символов?

Великое коды для PHP/ASP/HTML разрабатывает разработку. Большой интерфейс, поиск нескольких-файлов и замена поддержкой regexp, гладкой интеграцией FTP/SFTP/и т.д. для просмотра и редактирования удаленных файлов, интеграции SVN, и т.д.

Это теперь поддерживает плагины, и сменный редактор может импортировать пакеты TextMate, таким образом, существует блестящее будущее там. Еще нет большого количества обязательных плагинов, потому что сменная поддержка была недавно начата с версии 1.6 несколько месяцев назад. Это - распространенное приложение, тем не менее, таким образом, я ожидаю больше в будущем.

"уничтожающие функции" меня: * Бесшовное редактирование удаленных файлов * навигатор Code (браузер символа; область, которая перечисляет функции и т.д.)

Большинство людей не действительно в использование браузеров символа, но поскольку я должен поддержать много незнакомого кода, я нахожу их неоценимыми.

я не уверен, что Кода имеет "грубую силу" TextMate все же. Я планирую то, чтобы знакомиться с TextMate затем.

79
задан Bryan Locke 10 November 2009 в 19:01
поделиться

2 ответа

Согласно http://www.techotopia.com/index.php/Ruby_String_Concatenation_and_Comparison

Выполнение

mystring == yourstring

или

mystring.eql? yourstring

эквивалентно.

137
ответ дан 24 November 2019 в 10:13
поделиться

Ваш пример кода не расширяет часть вашей темы, а именно символы, поэтому эта часть вопроса осталась без ответа.

Если у вас есть две строки, foo и bar, и оба могут быть либо строкой, либо символом, вы можете проверить равенство с помощью

foo.to_s == bar.to_s

. Немного эффективнее пропустить преобразование строк в операндах с известным типом. Итак, если foo всегда является строкой

foo == bar.to_s

, но для повышения эффективности почти наверняка не стоит требовать дополнительной работы от имени вызывающего.

До Ruby 2.2 избегайте интернирования неконтролируемых входных строк с целью сравнения (со строками или символы), потому что символы не собираются сборщиком мусора, и вы можете подвергнуться отказу в обслуживании из-за исчерпания ресурсов. Ограничьте использование символов значениями, которые вы контролируете, т.е. литералами в вашем коде,

13
ответ дан 24 November 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: