双管操作员是否有速记等效物,将空字符串视为虚假



在Ruby中,通常使用双管操作员测试变量是否是虚假的,并在变量未定义时应用某种默认设置。这是我刚刚在代码库中遇到的一条配置线,我正在做一些工作:

config.uh_product_name = ENV['UH_PRODUCT_NAME'] || 'Unicorn Hunt'

如果ENV["UH_PRODUCT_NAME"]nil,这一切都很好。但是在这种情况下,由于默认设置.ENV文件的方式,ENV["UH_PRODUCT_NAME"]是一个空字符串"",这是真实的。因此未应用默认值。

我可以这样做来处理这种情况:

config.uh_product_name = ENV['UH_PRODUCT_NAME'].present? ? 'Unicorn Hunt' : ENV['UH_PRODUCT_NAME'] 

,但这还不那么可读,最终以一系列代码可能会在屏幕上伸展。

那么,有人知道沿||线的速记操作员应用Rails的.blank?还是将空字符串视为虚假?也许这样的东西:

config.uh_product_name = ENV['UH_PRODUCT_NAME'] ?|| 'Unicorn Hunt'

使用" nullifier"对象#存在:

config.uh_product_name = ENV['UH_PRODUCT_NAME'].presence || 'Unicorn Hunt'

最新更新