如何在 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

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.