【发布时间】:2019-06-28 01:39:26
【问题描述】:
我想写一个 PnP 助手。我创建了一个包含统计信息和统计级别的哈希,并定义了一种方法来升级这些统计信息。这是我的哈希:
$stats = {
"HP" => 300,
"VIT" => 9,
"STR" => 10,
"DEX" => 15,
"SPD" => 8,
"INT" => 11,
"PSY" => 21,
"HW" => 2,
"MED" => 3,
"SCHW" => 0,
"GEN" => 12,
"RGEW" => 25,
"SELB" => 11,
"MKEN" => 19,
"WILL" => 23
}
下面是我的方法:
def level_stat (stat, amount = 1)
@string = stat.upcase
print "#{@string}: #{$stats[@string]} > "
$stats[@string] += 1 * amount
puts $stats[@string]
if (@string == "VIT")
$stats["HP"] += 5 * amount
print "#{"HP"}: #{$stats["HP"]} > "
puts $stats["HP"]
end
end
amount 的默认值将统计数据升级一级,但可以同时对同一统计数据进行多次升级(或者应该如此)。调用它按预期工作:
level_stat ("int")
但是,调用以下语句会引发错误:
level_stat ("vit", 2)
# >> syntax error, unexpected ',', expecting ')'
# level_stat ("vit", 2)
# ^
我不明白它为什么这样做。
【问题讨论】:
-
不要在方法名称和参数括号之间放置空格。
-
删除
level_stat和(之间的空格——无论是在定义方法还是调用它时。 -
哎呀,这是一个可悲的错误......谢谢大家