方法默认参数初始化的奇怪行为

问题描述 投票:0回答:1

当我尝试初始化它时,它工作得非常好

class Abc
  def initialize(parent_id, user = nil, permission)
  end
end

Abc.new(1 ,2, "some_permission")

但是当我这样做的时候

  class Abc
    def initialize(parent_id, user = nil, permission, g_data = nil)    
    end
  end

Abc.new(1,2,“some_permission”,4)

我收到语法错误语法错误,意外'=',期待')'这是一个奇怪的行为,为什么它没有把两个参数默认为nil

ruby-on-rails ruby syntax
1个回答
2
投票

根据ruby documentation,默认值应该分组。

默认值不需要首先显示,但默认值的参数必须组合在一起。

因此,根据此规则,您的方法参数应如下列出:

  class Abc
    def initialize(parent_id, user = nil,g_data = nil,permission)    
    end

    # OR
    def initialize(parent_id, permission,user = nil,g_data = nil)    
    end
  end
© www.soinside.com 2019 - 2024. All rights reserved.