在ruby1.9.2中,在文件的第一行加上:
# encoding: utf-8
试试看。
另外,你可以直接启动irb来测试一些简单的代码。在命令行输入 irb ,再输入 puts 'hello world',即可看到运行结果。
不建议用记事本来写程序,可以考虑下载一个IDE,如netbeans, e-texteditor之类的支持ruby的编辑器。
ruby中每一个方法都有返回值,当然,不一定要使用return。当不使用return时,就返回调用方法时方法内最后一个表达式执行的结果。 当使用return语句时,这样方法的返回值就是return语句的参数。 当使用return语句时,返回值可以是多个,这时候返回值会被转化为一个数组,你可以用多重赋值的形式来使用这个返回值。满意请采纳
终于明白你的意思了。这不是 hash 的问题,是 Array.new 的用法不对,你这样做是指用{}这个对象填充3遍,就是说是同一个对象填充了3次,所以无论你修改哪一个对象,其它的都会跟着变,因为是同一对象。
http://www.ruby-doc.org/core-2.2.0/Array.html#method-c-new-label-Common+gotchas
以上是 ruby 文档,他给出了正确的用法:
a = Array.new(2) { Hash.new }