gpt4 book ai didi

ruby - 如何在一行中更改方法的结果?

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

我需要稍微改变一下方法的输出:执行函数,如果它是空字符串,则将其转换为“1”。我怎么能把这个短片写在一行上?

var = some_really_long_method(foo)
var = "1" if var == ""

我在下面尝试过,但是确实调用了两次方法,对吧?

var = some_really_long_method(foo) == "" ? "1" : some_really_long_method(foo)

最佳答案

你可以使用 Object#then :

def some_really_long_method
p 'called'
p res = ["", "10"].sample
res
end

var = some_really_long_method.then { |m| m == "" ? '1' : m }

您可以自己检查该方法是否被调用了一次。

关于ruby - 如何在一行中更改方法的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56006010/

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