gpt4 book ai didi

Ruby:类实例化的快捷方式

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:57 24 4
gpt4 key购买 nike

是否可以在 Ruby 中为自定义类的实例化创建快捷方式?

例如,对于 Hash 的子类如下:

class MyHash < Hash
# some custom methods
end

MyHash 实例可以像这样创建:

foo = MyHash[ :bar => 'baz' ]

foo = MyHash.new
foo[:bar] = 'baz'

这很好,但我想知道是否有一种方法可以定义一个新的快捷方式,例如:

foo = my{ :bar => 'baz' }

更新:

由于目标似乎不明确,我在这里的主要考虑是了解 ruby​​ 如何在内部建立 {}Hash.new 等快捷方式之间的链接,如果可以创建新的快捷方式。

最佳答案

class MyHash < Hash; end

module Kernel
def my h; MyHash[h] end
end

我认为你能做的最好的事情就是使用括号而不是大括号,或者用括号将大括号括起来。

foo = my(bar: "baz")

foo = my({bar: "baz"})

虽然,我不明白您的期望在什么意义上是一条捷径。我不认为 my{bar: "baz"}(如果可能)或 my(bar: "baz")MyHash[bar : "baz"]

关于Ruby:类实例化的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13888159/

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