ruby的新手问题..

Python021

ruby的新手问题..,第1张

invalid multibyte char (us-ASCII) 表示内容中有非英文字符,比如中文之类的,看看是不是有中文空格。

在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 }