gpt4 book ai didi

ruby - 在 Ruby 中编写一系列单行方法的更简洁的方法?

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

有时我们最终会编写多个方法,例如:

module XyzGateway
module Defaults
def pull_sample asynch=true
'N/A'
end

def is_pull_available?
false
end

def is_push_available?
true
end

def connect params
logger.debug "Invalid gateway(#{self.id}), could not resolve its type. #{ap self}"
end

def gateway_init
end

def disconnect
end
end
end

我只是在寻找一种方法来避免在这种情况下使用这些 defend 关键字,有什么办法吗?在我上面的例子中,这些是默认行为,如果我能避免这些 defend,我会很高兴。

编辑:是的,实际上我确实有一个用于所有这些的模块 XyzGateway::Defaults。

最佳答案

你无法避免它们,除非使用 define_method:

define_method :is_pull_available? { false }

如果你的目标只是缩短你的代码,你可以把整个方法放在一行中,这对于非常短的方法来说并不是那么糟糕(这里的第四个方法可能有点太长并且像这样压缩它伤害可读性,IMO):

def pull_sample(asynch = true); 'N/A'; end
def is_pull_available?; false; end
def is_push_available?; true; end
def connect params; logger.debug "Invalid gateway(#{self.id}), could not resolve its type. #{ap self}"; end
def gateway_init; end
def disconnect; end

关于ruby - 在 Ruby 中编写一系列单行方法的更简洁的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11999439/

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