>  Q&A  >  본문

ruby - 方法可变参数(如*options)之后的参数,不可以设置默认值吗?

譬如:

def calculate(*numbers, method = {:add=>true})

就一直报错:

syntax error, unexpected '=', expecting ')' (SyntaxError)

检索The Ruby Programming Wikibook 的相关语法也没有提示,请问这是什么原因呢?

伊谢尔伦伊谢尔伦2710일 전715

모든 응답(3)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-24 09:14:26

    당신이 통역사라고 가정하면, calculate({add: true}){add: true} 매개변수를 *numbers에 할당하시겠습니까, 아니면 method에 할당하시겠습니까?

    전혀 판단할 수 없겠죠? 그래서 그것은 허용되지 않습니다.

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-24 09:14:26

    *numbers의 변수 매개변수는 맨 마지막에만 넣을 수는 없나요?

    def calc(method = {add: true}, *numbers); end은 허용되나 그 반대는 허용되지 않습니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:14:26

    허용되지 않음, 모호함

    회신하다
    0
  • 취소회신하다