为什么';这个Ruby代码不能工作吗?
我是编程新手,我决定学习ruby。我刚刚开始,所以我仍在努力理解ruby的许多概念和想法。嗯,我试图用我从第一节课学到的东西创建我自己的程序,所以我写了这个小程序为什么';这个Ruby代码不能工作吗?,ruby,Ruby,我是编程新手,我决定学习ruby。我刚刚开始,所以我仍在努力理解ruby的许多概念和想法。嗯,我试图用我从第一节课学到的东西创建我自己的程序,所以我写了这个小程序 class Car def say_brand(aBrand) @thebrand=aBrand end def get_brand return @thebrand end def say_year(aYear) @theyear=aYear end def get_year
class Car
def say_brand(aBrand)
@thebrand=aBrand
end
def get_brand
return @thebrand
end
def say_year(aYear)
@theyear=aYear
end
def get_year
return @theyear
end
def say_model(aModel)
@themodel=aModel
end
def get_model
return @themodel
end
end
firstcar.say_brand(Toyota)
puts(firstcar.get_brand)
firstcar.say_year(1997)
puts(firstcar.get_year)
firstcar.say_model(Corolla)
puts(firstcar.get_model)
secondcar.say_brand(Subaru)
puts(secondcar.get_brand)
secondcar.say_year(2005)
puts(secondcar.get_year)
secondcar.say_model(Impressa)
puts(secondcar.get_model)
thirdcar.say_brand(Ford)
puts(thirdcar.get_brand)
thirdcar.say_year(2013)
puts(thirdcar.get_year)
thirdcar.say_model(Explorer)
puts(thirdcar.get_model)
当我在计算机的命令行上运行它时,会显示:
cars.rb:45:syntax error,unexpected $end,expecting keyword_end
(eval):569: (eval):569: compile error (SyntaxError)
(eval):569: syntax error, unexpected $end, expecting kEND
当我在codecademy labs editor for Ruby中运行它时,会显示:
cars.rb:45:syntax error,unexpected $end,expecting keyword_end
(eval):569: (eval):569: compile error (SyntaxError)
(eval):569: syntax error, unexpected $end, expecting kEND
我希望程序显示类似的内容:
-Toyota
-1997
-Corolla
-Subaru
-2005
-Impressa
-Ford
-2013
-Explorer
-丰田
-1997
-花冠
-斯巴鲁
-2005
-Impressa
-福特
-2013
-探险家
如果有人能告诉我我的代码有什么问题,我将不胜感激,这样我就可以继续学习编程。使用
irb
。键入命令行irb
,将打开一个交互式Ruby shell。在其中,逐个输入您的行。我发现你的类定义没有错。如果您一行一行地输入代码并查看输出,您将看到哪一行有语法错误。错误消息表示程序结束时仍有一个块打开,该块应以结束
关闭。代码的适当缩进应该使这些错误变得明显
除此之外,发布的代码不会创建对象firstcar
、secondcar
或thirdcar
(例如,使用firstcar=Car.new
)。品牌名称和车型(例如,Toyota
)看起来也像是您想要的字符串-如果是这样,它们缺少引号(例如,“Toyota”
)。(如果您希望它们是类或对象,则发布的代码不会显示它们的定义。)
get.*
和say.*
(你的意思是set
?)访问器也不是很好的Ruby风格,尽管本质上不是错误的。阅读Ruby中的访问器。什么是“不工作”的?您的期望是什么?这与您观察到的有什么不同?如果您不愿意告诉我们此代码如何工作,我们也不愿意尝试找出它可能有什么问题。错误消息?你怎么称呼它。缺少end
(缩进代码,您将看到它)。2.未初始化的firstcar
和secondcar
(添加firstcar=Car.new
)。3.Toyota
、Corolla
等缺少引号。您的代码没有显示初始化的firstcar
、secondcar
或thirdcar
的位置,也没有定义Toyota
、Corolla
、Subaru
、Impressa
、Ford
或Explorer
。您可能需要类似于firstcar=Car.new
和firstcar.say_brand('Toyota')
和firstcar.say_model('Corolla')
。