为什么我会得到这个;语法错误,意外的tIDENTIFIER“;我的Ruby代码中的错误消息?

为什么我会得到这个;语法错误,意外的tIDENTIFIER“;我的Ruby代码中的错误消息?,ruby,Ruby,有人能解释一下为什么这个代码不起作用吗?我对ruby还不太了解,希望你能帮忙。它说我在put multi[is]中有语法错误: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '<' puts multi[is] 语法错误,意外的tIDENTIFIER,应为关键字\u do或“{”或“您的是+++是导致错误的原因。只需编写是+=1。在ruby中没有运算符 直接从文档中: Ruby没有前置/后置递增/

有人能解释一下为什么这个代码不起作用吗?我对ruby还不太了解,希望你能帮忙。它说我在
put multi[is]
中有语法错误:

syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '<' puts multi[is]

语法错误,意外的tIDENTIFIER,应为关键字\u do或“{”或“您的
是+++
是导致错误的原因。只需编写
是+=1
。在ruby中没有运算符

直接从文档中:

Ruby没有前置/后置递增/递减运算符。例如,x++或x--将无法解析。更重要的是,++x或--x将什么都不做!事实上,它们的行为就像多个一元前缀运算符:-x=--x=--x==…要递增一个数字,只需写x+=1即可

我通过一些修改重新编写了您的代码:

multi = ['hest','hund','kat','fugl'] # names of animals
index=-1
for name in multi
  p "#{name} at #{index+=1}"
end
# >> "hest at 0"
# >> "hund at 1"
# >> "kat at 2"
# >> "fugl at 3"

您的
is++
是导致错误的一个。只需编写
is+=1
。在ruby中没有运算符

直接从文档中:

Ruby没有前置/后置递增/递减运算符。例如,x++或x--将无法解析。更重要的是,++x或--x将什么都不做!事实上,它们的行为就像多个一元前缀运算符:-x=--x=--x==…要递增一个数字,只需写x+=1即可

我通过一些修改重新编写了您的代码:

multi = ['hest','hund','kat','fugl'] # names of animals
index=-1
for name in multi
  p "#{name} at #{index+=1}"
end
# >> "hest at 0"
# >> "hund at 1"
# >> "kat at 2"
# >> "fugl at 3"

奥雅纳已经回答了这个问题,但我想在你的代码中添加一些不符合其惯例的红色

multi = ['hest','hund','kat','fugl'] # names of animals

multi.each_with_index do |m, i|
  puts "#{i+1} #{m}"
end
每个带有索引的\u
都是Ruby枚举器,它为您提供两个块变量,一个用于元素(此处为
m
),另一个用于对应元素的索引(此处为
i


继续Ruby.:

奥雅纳已经回答了这个问题,但我想在你的代码中添加Ruby的色彩,它不符合它的惯例

multi = ['hest','hund','kat','fugl'] # names of animals

multi.each_with_index do |m, i|
  puts "#{i+1} #{m}"
end
每个带有索引的\u
都是Ruby枚举器,它为您提供两个块变量,一个用于元素(此处为
m
),另一个用于对应元素的索引(此处为
i


继续擦。:)

谢谢,现在我看到像是+=1,1是动物名字的位置,所以1是hund@Mark我不知道你为什么要写代码,也不知道你要做什么,因为这些不是你文章的一部分。我只是集中讨论了错误的原因,并试图解决它。现在你可以随心所欲地使用代码了。im v我对这个很陌生,不知道发什么好,谢谢谢谢现在我看到像是+=1,一是动物名字的位置,所以1是hund@Mark我不知道你为什么要写代码,你要做什么,因为这些都不是你文章的一部分。我只是专注于为什么会出现错误,并相应地尝试修复它。现在你可以玩你的代码,因为你喜欢。我很新的,所以,不知道该发布什么嘻嘻,谢谢