如果参数不是nil,则组合字符串;如果参数为nil,则返回nil

时间:2014-04-11 06:07:05

标签: ruby

有更优雅的方法吗?

def my_method1(options={})
  (options[:age]) ? "my string #{options[:age]}" : nil
end

def my_method2(options={})
  (options[:age]) ? "my string #{options[:age]}" : ""
end

2 个答案:

答案 0 :(得分:3)

def my_method1(options={})
  "my string #{options[:age]}" if options[:age]
end

def my_method2(options={})
  my_method1(options).to_s
end

答案 1 :(得分:0)

def my_method1(options={})
  oa = options[:age]
  oa.nil? ? nil : "my string #{oa}"
end

def my_method2(options={})
  oa = options[:age]
  oa.nil? ? '' : "my string #{oa}"
end