Ruby ruby 新手打破砂锅的一个问题

allchild · 2011年12月20日 · 最后由 allchild 回复于 2012年02月04日 · 2749 次阅读

20 分钟体验 ruby 里的一个例子,例子很简单,写一个函数 def h(name="World") puts "Hello #{name.capitalize}" end 问题是,如果把函数写成 def h(name="world") 则会报这样的错误 Error: undefined method `capitallize' for "world":String 这是为什么呢。即使 name 默认值为 world,不会执行 name.capitalize 将 world 转换为大写么。

感谢您看到我的帖子,不管您有没有回答,我都谢谢您。如果您能替我解惑,我会感激万分。任何稍微的点拨,都是对新手的雪中送炭。

我错了,删除

您 ruby 版本是?不存在这样的问题! 给你贴下 irb 的内容:

ruby-1.9.2-p290 :002 >   def h(name="World") 
ruby-1.9.2-p290 :003?>   puts "Hello #{name.capitalize}" 
ruby-1.9.2-p290 :004?>   end 
 => nil 
ruby-1.9.2-p290 :005 > h
Hello World
 => nil 

#1 楼 @huacnlee ruby 本身就有的。

Error: undefined method `capitallize' for "world":String 

明显你的 captallize 拼写错误

#1 楼 @huacnlee anyway,感谢关注。哈哈哈

#2 楼 @weihuilee ruby 版本为 1.8.7 默认参数是 name = "World" OK,但参数是 name = “world”报错。

#4 楼 @hooopo 嗯嗯。拼写错误。丢人了。捂脸奔走。。。 谢谢谢谢谢谢啦~~

总结之,还是要细心看错误提示才是。谢谢楼上各位大大啦~~~

需要 登录 后方可回复, 如果你还没有账号请 注册新账号