私は独学で Ruby を学んでおり、RubyMonk の演習を行っています。私は混乱するこのコードに出くわしました:
def calculate(*arguments)
options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
options[:add] = true if options.empty?
return add(*arguments) if options[:add]
return subtract(*arguments) if options[:subtract]
end
加算と減算は、引数を加算/減算する既存の関数であり、長さが異なる可能性があることに注意してください。
計算は次のように機能するはずです
calculate(1,2,3,4,5,add: true) => 10
calculate(10,3,4, subtract: true) => 3
私の質問は、誰かが行で何が起こっているかを説明できるかということです:
options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
つまり、スタンドアロンの疑問符は正確に何をしますか? また、コロンは何をしますか?
助けてくれてどうもありがとう!