下面的代码在Ruby中是什么意思?
||=
它在语法上有什么意义或理由吗?
发布于 2014-01-11 20:52:11
简而言之,a||=b
的意思是:如果a
为undefined, nil or false
,则将b
赋给a
。否则,请保持a
完好无损。
发布于 2016-06-05 09:47:53
基本上,
x ||= y
均值
如果x
具有任何值,请不要更改该值,否则将x
设置为y
发布于 2009-06-15 11:30:54
它的意思是-等于。它检查左侧的值是否已定义,然后使用该值。如果不是,则使用右侧的值。您可以在Rails中使用它来缓存模型中的实例变量。
一个基于Rails的快速示例,其中我们创建了一个函数来获取当前登录的用户:
class User > ActiveRecord::Base
def current_user
@current_user ||= User.find_by_id(session[:user_id])
end
end
它检查是否设置了@current_user实例变量。如果是,它将返回它,从而节省了数据库调用。但是,如果没有设置,我们进行调用,然后将@current_user变量设置为该值。这是一种非常简单的缓存技术,但对于在应用程序中多次获取相同的实例变量时非常有用。
https://stackoverflow.com/questions/995593
复制相似问题