Ruby 前缀不为空时为字符串加前缀的简洁方法
有没有一种较短的方法来完成以下操作Ruby 前缀不为空时为字符串加前缀的简洁方法,ruby,Ruby,有没有一种较短的方法来完成以下操作 foo = config.include?(:bar) ? "#{bar}.baz" : "baz" 我正在寻找一个可读的单行程序,如果变量存在(假设它是字符串),它会附加一个变量和一个分隔符 config是一个散列。您可以这样做: foo = "#{"bar." if config.include?(:bar)}baz" foo = [bar, 'baz'].compact.join('.') 如果bar为nil,则compact
foo =
config.include?(:bar) ?
"#{bar}.baz" :
"baz"
我正在寻找一个可读的单行程序,如果变量存在(假设它是字符串),它会附加一个变量和一个分隔符
config
是一个散列。您可以这样做:
foo = "#{"bar." if config.include?(:bar)}baz"
foo = [bar, 'baz'].compact.join('.')
如果bar
为nil,则compact
将从数组中删除它,并且不会添加分隔符。您可以执行以下操作:
foo = [bar, 'baz'].compact.join('.')
如果
bar
为nil,则compact
将从数组中删除它,并且不会添加分隔符。这与此不同。config.include?可能比nilYes更有意义,我知道。可能我假设得太多了。在我的情况下,bar
如果没有定义,它总是nil
。这不是一回事。config.include?可能比nilYes更有意义,我知道。可能我假设得太多了。在我的情况下,bar
如果没有定义,它将始终是nil
。这看起来很短,对我来说可读写什么(类)config
。不要让读者猜。你的标题和问题似乎不匹配。这看起来很简短,我可以阅读,写下什么是(类)config
。不要让读者猜。你的题目和问题似乎不匹配。