Я постоянно ищу четкое определение различий шь?
, пустой?
, и "пустая"? в Рубин на рельсы. Здесь'ы единственное, что я'вэ пришел:
пустой?
объекты являются ложными, пустыми, или пробельные строки. Например, в ""
в, в " на "
, ноль
, []
, и {}
пусты.
мь объектов?
являются экземплярами NilClass.
объекты пустые? не классовый, а определение варьируется от класса к классу. Строка является пустой, если в ней нет персонажей, и массив пуст, если он не содержит элементов.
Чего-то не хватает, или туже сравнения, что можно сделать?
.шь?
может быть использован на любом предмете и является true, если объект равен нулю.
.пуст?
могут быть использованы со строками, массивами и хэшами и возвращает true, если:
Работает .пуст? на то, что Нил бросит
NoMethodError`.
Именно там .пустой?
приходит. Это реализуемых рельсы и будет работать на любом объекте, а также работу по душе.пуст?` на строки, массивы и хэши.
nil.blank? == true
false.blank? == true
[].blank? == true
{}.blank? == true
"".blank? == true
5.blank? == false
0.blank? == false
`.пустой? также истинно на строки не пустые, но содержат только пробельные символы:
" ".blank? == true
" ".empty? == false
Рельсы также обеспечивает .подарок?
, которая возвращает отрицание .пустой?
.
Попался массива: пустой?
возвращает значение false, даже если все элементы массива пусты. Чтобы определить, пустота в этом случае использовать все?
с пустым?
, например:
[ nil, '' ].blank? == false
[ nil, '' ].all? &:blank? == true
Я сделал эту полезную таблицу со всеми случаях:
пустой?
, настоящее время?
предусмотрены рельсы.
Быстрый наконечник: `!кадриров.пустой? == кадриров.настоящем?
Может быть удобно/легче на глазах в некоторых выражениях
Единственное различие заключается в том, что .шь? "и".пуст?
- это методы, которые предусмотрены языком программирования Ruby, в то время как `.пустой? - это что-то добавлено в рамках веб-разработки на Rails.
шь?
является пустой?
шь?
является пустой?
Тл;др-только использовать пустой?
& подарок?
, если вы хотите, чтобы различать в ""
В и в " "
в
Дон'т забыть, какой?
, который вообще !пуст?
. В Rails я обычно проверяю на наличие чего-то в конце заявление с ЕСЛИ-ТО
или если что
потом пустой?
где требуется, поскольку это, кажется, работает везде.
`шь? - это стандартный метод рубиновый, что можно назвать на все объекты и возвращает "true", если объект "ноль":
b = nil
b.nil? # => true
"пустая"? - это стандартный способ Ruby, которые можно назвать на некоторые объекты, такие как строки, массивы и хэши, и возвращает true
, если эти объекты не содержат элемента:
a = []
a.empty? # => true
b = ["2","4"]
b.empty? # => false
пустой?
не может быть вызван на "ноль" предметов.
пустой?
- это метод рельсы, которые можно назвать на "нулевые" объекты, а также пустые объекты.
Все объяснил, Ну какая разница.
Я хотел бы добавить в Рубин на рельсы, то лучше использовать параметр obj.пустой?или
в obj.настоящее время? "вместо" объект obj.шь?или
в obj.пуст?`.
в obj.пустой?
обрабатывает все типы Нил
, ''
, []
, {}
, и возвращает значение true, если значения и возвращает "false", если значения доступны на любом типе объекта.
существует?
метод может использоваться, чтобы проверить, существует ли в базе данных или нет. Она возвращает логическое значение true
или ложно
.
Рельсы 4
альтернатива @Корбан-Брук 'ы 'попались такие чистые?' проверки, если массивы содержит только пустые значения, и могут рассматриваться как пустой? правда:
[ nil, '' ].all? &:blank? == true
можно также сделать:
[nil, '', "", " ",' '].reject(&:blank?).blank? == true
шь?
может быть использован на любом объекте. Он определяет, если объект имеет какую-либо ценность или нет, в том числе 'пустой' ценности.
Например:
example = nil
example.nil? # true
"".nil? # false
В основном `шь? будут только когда-либо возвращать значение true, если объект фактически равен 'Нил'.
"пустая"?вызывается только для объектов, которые считаются коллекции. Это включает такие вещи, как строки (набор символов), хеши (коллекция пар ключ/значение) и массивы (коллекции произвольных объектов).
пустой?` возвращается True нет в коллекции.
Например:
"".empty? # true
"hi".empty? # false
{}.empty? # true
{"" => ""}.empty? # false
[].empty? # true
[nil].empty? # false
nil.empty? # NoMethodError: undefined method `empty?' for nil:NilClass
Заметим, что пустое? может'т быть вызван на Нил Нил объекты как объекты не коллекция и будет вызвано исключение.
Также обратите внимание, что даже если элементы в коллекции являются пустыми, то это не значит, коллекция будет пустой.
пустой?
- это в основном сочетание шь? " и " пусто?
Это's полезный для проверки объектов, которые вы предполагаете-это коллекции, но также может быть nil.