Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么Ruby的默认参数值不被赋值给nil参数?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。



我是Ruby的新手,遇到一些令我困惑的东西.

我在方法签名中设置一个默认参数值.

调用该方法时,我将一个零参数传递给该参数.

但默认值未分配;它仍然是零.

# method with a default value of 1000 for parameter 'b'
def format_args(a,b=1000)
  "\t #{a.ljust(30,'.')} #{B}"
end

# test hash
dudes = {};
dudes["larry"] = 60
dudes["moe"] = nil

# expecTing default parameter value
puts "Without nil check:"
dudes.each do |k,v|    
  puts format_args(k,v)
end

# forcing default parameter value
puts "With nil check:"
dudes.each do |k,v|    
  if v 
    puts format_args(k,v)
  else 
    puts format_args(k)
  end
end

输出:

Without nil check:
     larry......................... 60
     moe........................... 
With nil check:
     larry......................... 60
     moe........................... 1000

这是预期的行为吗?

我错过了什么ruby-foo?

看起来像nil是不一样的“没有价值”,我习惯于在其他语言中虑null.

解决方法

当不提供参数时,使用默认参数.

如果你提供它为零,那么它将是零.所以是的,这是预期的行为.

大佬总结

以上是大佬教程为你收集整理的为什么Ruby的默认参数值不被赋值给nil参数?全部内容,希望文章能够帮你解决为什么Ruby的默认参数值不被赋值给nil参数?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。