gpt4 book ai didi

Ruby——强制 method_missing *args 是散列?

转载 作者:太空宇宙 更新时间:2023-11-03 17:53:42 25 4
gpt4 key购买 nike

我想为我的一个类定义一个 method_missing 函数,并且我希望能够传入一个散列作为参数列表而不是数组。像这样:

MyClass::get_by_id {:id => id}
MyClass::get_by_id {:id => id, :filters => filters}
MyClass::get_by_id {:id => id, :filters => filters, :sort => sort}

据我所知,args 列表作为数组传入,因此键被删除,并且无法分辨哪个参数是哪个。有没有办法强制 Ruby 将 method_missing 中的参数列表视为散列?

最佳答案

您有什么问题?这对我有用:

class MyClass
def self.method_missing name, args
puts args.class
puts args.inspect
end
end

MyClass.foobar :id => 5, :filter => "bar"
# Hash
# {:id=>5, :filter=>"bar"}

关于Ruby——强制 method_missing *args 是散列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18834642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com