gpt4 book ai didi

ruby - 处理 nil 值的优雅 "Ruby Way"是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:41:59 24 4
gpt4 key购买 nike

所以我想根据输入是否给定来有条件地分配变量。

例如

@name = params[:input]['name'] || "Name not yet given"

但是,如果还没有传递参数,这会报错

method [] does not exist for nil class

我有两个想法来解决这个问题。一种是向 nil 类添加 [] 方法。像这样的东西:

class NilClass
def []
self
end
end

我的另一个想法是使用 if 语句

if params[:input].nil?
@name = params[:input]['name']
else
@name = "Name not yet given"
end

但是,这两种解决方案都感觉不太对。

什么是“ ruby 之道”?

最佳答案

一种方法是使用 Hash#fetch .

params[:input].to_h.fetch('name', "Name not yet given")

关于ruby - 处理 nil 值的优雅 "Ruby Way"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24789426/

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