猿问

splat参数后的可选参数

这是我的程序:


def calculate(*numbers, options = {})

  add(numbers)      if options[:add]

  subtract(numbers) if options[:add] == false

end


def add(*numbers)

  numbers.reduce(:+)

end


def subtract(*numbers)

  numbers.reduce(:-)

end


p calculate(1,2)

在第1行,它在抱怨


tests.rb:1:语法错误,意外的'=',期望的是')'

def计算(*数字,选项= {})

________________________________________________ ^

[在0.1秒内完成,退出代码为1]


我认为这可能是Ruby中默认值的问题,因为在v1.9之前,您必须按顺序拥有所有默认值-但这不是问题,因为我的版本是


ruby 2.0.0p195 (2013-05-14) [i386-mingw32]


我已经尝试过对所有空间进行转置,因为在方法方面,红宝石似乎对那些东西特别,但没有骰子。


可能是我的splat变量*numbers吗?


婷婷同学_
浏览 590回答 3
3回答
随时随地看视频慕课网APP

相关分类

Ruby
我要回答