我如何检查一个变量是否在Ruby中定义?有没有isset可用的类型方法? 使用defined?关键字(文档)。它会返回一个String类型的项目,或者nil它不存在。 >> a = 1 => 1 >> defined? a => "local-variable" >> defined? b => nil >> defined? nil => "nil" >> defined? String => "constant" >> defined? 1 => "expression" 正如skalee所评论的那样:“值得注意的是,设置为零的变量被初始化。” >> n = nil >> defined? n => "local-variable" 如果你不想做任何事,如果它确实存在,那么这很有用,但如果它不存在就创建它。 def get_var @var ||= SomeClass.new() end 这只会创建一次新的实例。之后,它只是不断返回变种。 上述语句的正确语法是: if (defined?(var)).nil? #