首页 > Getting started with Ruby > Ruby学习笔记2

Ruby学习笔记2

今天碰到的问题两个:
1.class/module name must be CONSTANT
这个问题发生在定义的类或者模块首字母没有大写,我刚开始的时候是这么写的:

irb(main):002:0> class song
irb(main):003:1> def name
irb(main):004:2> @name
irb(main):005:2> end
irb(main):006:1> def artist
irb(main):007:2> @artist
irb(main):008:2> end
irb(main):009:1> def duration
irb(main):010:2> @duration
irb(main):011:2> end
irb(main):012:1> end

于是在最后一个end的时候发生了如下错误:

SyntaxError: compile error
(irb):2: class/module name must be CONSTANT
from (irb):12
from:0

再修改了之后,输入:

irb(main):013:0> class Song
irb(main):014:1> def name
irb(main):015:2> @name
irb(main):016:2> end
irb(main):017:1> def artist
irb(main):018:2> @artist
irb(main):019:2> end
irb(main):020:1> def duration
irb(main):021:2> @duration
irb(main):022:2> end
irb(main):023:1> end
=> nil

在最后一个end时得到nil值,不过接下来就碰到第二个问题了.

2.ArgumentError: wrong number of arguments
这个错误是参数设置错误,通常后面会跟一个括号指出有几处错误..比如我这个:

irb(main):024:0> song=Song.new(“Bicylops”,”Fleck”,260)
ArgumentError: wrong number of arguments (3 for 0)
from (irb):24:in `initialize’
from (irb):24:in `new’
from (irb):24
from :0
irb(main):025:0> song.artist

不过我不明白我的错误到底发生在哪里,是初始化new这个方法时参数错误…?网上很难找到相关信息,有没有高手指点一下?

Technorati Tags: , ,

  1. ice5 8月 7th, 2007 @ 10:43 | #-49

    你的引号错了 应该是半角的

  2. ice5 8月 7th, 2007 @ 10:51 | #-48

    应该又initialize()这个方法
    然后再用写
    def name….
    这样就不会有参数错误了

  3. ice5 8月 7th, 2007 @ 10:53 | #-47

    class里要有initialize()方法,没有这个方法new后肯定出错的

评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks