Ruby 错误提示:
class/module name must be CONSTANT
=begin begin to comment
this is also comment
=end
puts "noLonggerComments";
#rdoc rules
#= headers
#this is header content
#== sub headers
# this is sub header content
#=== sub sub headers
# this is sub sub headers
class animal
#this is the comment for the 'new' method !
def initialize type
@name = type
end
#this is comment for 'shout' method
# Second Line
#* this is sub line 1
#* this is sub line 2
def shout
if @name == 'dog'
puts "wang! wang!"
elsif @name == 'cat'
puts "miao! miao!"
end
end
end
dog = animal.new 'dog'
dog.shout
gets
=end
puts "noLonggerComments";
#rdoc rules
#= headers
#this is header content
#== sub headers
# this is sub header content
#=== sub sub headers
# this is sub sub headers
class animal
#this is the comment for the 'new' method !
def initialize type
@name = type
end
#this is comment for 'shout' method
# Second Line
#* this is sub line 1
#* this is sub line 2
def shout
if @name == 'dog'
puts "wang! wang!"
elsif @name == 'cat'
puts "miao! miao!"
end
end
end
dog = animal.new 'dog'
dog.shout
gets
Ruby 类名 必须大写。
这里涉及到一个Ruby 解释器的习惯约定。
::
1.把以ACSII编码的且为大写开头的变量 默认为 常量。
2. Ruby中的局部变量名首字母的约定是小写。
3.Ruby中的构造函数名称为initialize。
4.Ruby中的成员变量(实例变量)前导@符,在initialize里进行声明与初始化。
5.Ruby中的属性用attr_writer和attr_reader声明,分别对应c#的set,get,使用了attr_accessor是可读也可写
6.Ruby中的全局变量前导$符。
7.Ruby中的常数(常量)用大写字母开头,约定是全部大写。
解决方案:
将类名改成 Animal 之后就可以通过。