如何在 Ruby 中使用“defined?”关键字?


Ruby 提供了一个名为 **defined?** 的特殊关键字,用于确定 Ruby 中是否定义了特定对象或数据类型。

如果传递的表达式或参数已定义,**defined?** 关键字将返回一个字符串来描述其表达式或参数。如果 Ruby 中未定义表达式或参数,则返回 **nil**。

语法

下面给出 Ruby 中 **defined?** 关键字的语法

defined? variable_name

现在,让我们通过几个示例来演示如何在 Ruby 中使用 **defined?** 关键字。

示例 1

考虑以下代码。

# Declare the Variables
programming = 2
ruby = programming * 2

# Checking if the variables are defined or not
var1 = defined? programming
var2 = defined? java
var3 = defined? ruby
var4 = defined? Math::PI

# Displaying the results
puts "Variable 1: #{var1}"
puts "Variable 2: #{var2}"
puts "Variable 3: #{var3}"
puts "Variable 4: #{var4}"

输出

它将产生以下输出。

Variable 1: local-variable
Variable 2:
Variable 3: local-variable
Variable 4: constant

在这段代码中,我们声明了两个局部变量,然后使用了 Math 模块中的一个常量,这就是为什么我们得到了它们各自的字符串输出。

对于“变量 2”,我们传递了一个根本没有声明的字符串名称,因此我们得到了 nil 作为输出。

示例 2

现在让我们探索一个更复杂的 Ruby 代码,其中包含一个模块和 **两个** 方法,其中一个方法在模块中 **定义**,另一个方法未定义。考虑以下代码。

# Ruby program to illustrate defined? keyword

# First Method
def first_method
   puts "Learn Ruby Programming"
end

module Module1
   def second_method
      puts "Inside Coders"
   end
end

# Checking if the method is defined or not
# Using defined? keyword
method1 = defined? first_method
method2 = defined? second_method
module1 = defined? Module1
method3 = defined? hello
method4 = defined? puts

# Displaying results
puts "Method 1: #{method1}"
puts "Method 2: #{method2}"
puts "Method 3: #{method3}"
puts "Method 4: #{method4}"
puts "Module 1: #{module1}"

输出

它将产生以下输出。

Method 1: method
Method 2:
Method 3:
Method 4: method
Module 1: constant

更新于:2022年4月12日

浏览量:556

启动您的职业生涯

通过完成课程获得认证

开始学习
广告