Ruby 语法错误,意外的“=”
我将以下内容作为课程的一部分Ruby 语法错误,意外的“=”,ruby,Ruby,我将以下内容作为课程的一部分 def to_s i = 0 first_line? = true output = '' @selections.each do | selection | i += 1 if first_line? output << selection.to_s(first_line?) first_line? = false else output
def to_s
i = 0
first_line? = true
output = ''
@selections.each do | selection |
i += 1
if first_line?
output << selection.to_s(first_line?)
first_line? = false
else
output << selection.to_s
end
if i >= 5
output << "\r"
i = 0
else (output << " $ ")
end
end
return output
end
给予的东西,也要提前感谢,这让我发疯。我想,你不能在结尾用“?”来命名变量。我想,你不能在结尾用“?”来命名变量。我相信这是一种更简洁的方法来完成上述未经测试的工作:
def to_s
output = ""
@selections.each_with_index do | selection,line |
output << line==0 ? selection.to_s(true) and next : selection.to_s
output << line % 5 ? " $ " : "\r"
end
return output
end
如果你不喜欢三元运算符x?y:z然后你可以做它们,如果:
def to_s
output = ""
@selections.each_with_index do | selection,line |
if line==0
output << selection.to_s(true)
else
output << selection.to_s
if line % 5
output << " $ "
else
output << "\r"
end
end
end
return output
end
我相信这是一种更简洁的方法,可以完成上述未经测试的任务:
def to_s
output = ""
@selections.each_with_index do | selection,line |
output << line==0 ? selection.to_s(true) and next : selection.to_s
output << line % 5 ? " $ " : "\r"
end
return output
end
如果你不喜欢三元运算符x?y:z然后你可以做它们,如果:
def to_s
output = ""
@selections.each_with_index do | selection,line |
if line==0
output << selection.to_s(true)
else
output << selection.to_s
if line % 5
output << " $ "
else
output << "\r"
end
end
end
return output
end
除了下面提到的一些例外情况,变量名只能包含字母、数字和下划线。此外,它们必须以字母或下划线开头;它们不能以数字开头。你不能用?或在变量名中 除此之外,Ruby中还有一个很强的约定,即在某个对象的末尾加一个问号表示返回布尔值的方法:
4.nil? # => returns false....
所以,即使你可以使用它,像first_line这样的变量?会让红宝石爱好者感到困惑和恼火。他们希望这是一种测试某事物是否是某事物的第一行的方法,不管它在上下文中到底意味着什么
变量名的例外情况:
全局变量以$-开头,例如,$stdin表示标准输入。
实例变量以@开头,例如对象的@名称
类变量以@@-开头,例如,类的@总计
除了下面提到的一些例外情况,变量名只能包含字母、数字和下划线。此外,它们必须以字母或下划线开头;它们不能以数字开头。你不能用?或在变量名中 除此之外,Ruby中还有一个很强的约定,即在某个对象的末尾加一个问号表示返回布尔值的方法:
4.nil? # => returns false....
所以,即使你可以使用它,像first_line这样的变量?会让红宝石爱好者感到困惑和恼火。他们希望这是一种测试某事物是否是某事物的第一行的方法,不管它在上下文中到底意味着什么
变量名的例外情况:
全局变量以$-开头,例如,$stdin表示标准输入。
实例变量以@开头,例如对象的@名称
类变量以@@-开头,例如,类的@总计
变量名允许非ASCII字母,并且有一个问号,因此您可以将问号和某些形式的空格字符放入变量名。变量名允许非ASCII字母,并且有一个问号,所以你可以在变量名中添加问号和一些形式的空格字符。变量名包含?,不应该。变量名包含?,不应该。有没有一种标准的语法方法来定义voolean变量?对于非ASCII字母,你可以在变量名中添加各种奇怪的东西。让我问另一种方法,鲁比主义者是否更喜欢用一种特定的方式来定义布尔变量,这样读者就知道它们是布尔变量。例如,在Objective-C中,你可以在很多地方看到isFoo。@安德鲁,我没有意识到这一点。这听起来不是个好主意,但谢谢你的澄清。@Ben我不知道Ruby中存储布尔值的变量有什么约定。可能有一个,但我想不起来。有没有一种标准的语法方法来定义voolean变量?使用非ASCII字母,你可以将各种奇怪的东西放入变量名中。让我用另一种方法问一下,鲁比主义者是否更喜欢用一种特定的方式来定义布尔变量,这样读者就知道它们是布尔变量。例如,在Objective-C中,你可以在很多地方看到isFoo。@安德鲁,我没有意识到这一点。这听起来不是个好主意,但谢谢你的澄清。@Ben我不知道Ruby中存储布尔值的变量有什么约定。可能有一个,但我想不起来。再一次,澄清是有帮助的,但我认为在这种情况下,你能做什么和你应该做什么之间存在巨大的差异。再一次,澄清是有帮助的,但我认为在这种情况下,你能做什么和你应该做什么之间存在巨大的差异。我喜欢这个,但是需要添加括号,即index==0?selection.to\u strue:selection.to\s和索引%5?$:\我喜欢这样,但需要添加括号,即index==0?selection.to\u strue:selection.to\s和索引%5?$:\R