Ruby define?运算符

Ruby define?运算符教程

Ruby 中,defined? 是一个特殊的运算符,以方法调用的形式来判断传递的表达式是否已定义。它返回表达式的描述字符串,如果表达式未定义则返回 nil。

Ruby define?运算符详解

语法一

defined? variable # 如果 variable 已经初始化,则为 True

语法二

defined? method_call # 如果方法已经定义,则为 True

语法三

# 如果存在可被 super 用户调用的方法,则为 True defined? super

语法四

defined? yield # 如果已传递代码块,则为 True

案例

define?运算符

使用 define? 运算符,判断变量是否已经定义

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" a = 100 print("Defined a =", defined? a, "\n") print("Defined b =", defined? b, "\n")

程序运行后,控制台输出如下:

26_Ruby define运算符.png

我们首先定义了变量 a 并进行了初始化,接着,我们使用了 defined? 运算符判断了变量 a 是否已经初始化,此时返回了变量的信息,接着,我们再次判断了未定义的变量 b,此时返回了 nil。

define?运算符

使用 define? 运算符,判断方法是否已经定义

#!/usr/bin/ruby -w # -*- coding : utf-8 -*- puts "HaiCoder(www.haicoder.net)" print("Defined puts = ", defined? puts, "\n") print("Defined puts(bar) = ", defined? puts(bar), "\n") print("Defined unpack = ", defined? unpack, "\n")

程序运行后,控制台输出如下:

27_Ruby define运算符.png

我们使用了 define? 运算符判断了方法是否已经定义了,第二个案例返回了 nil,是因为虽然定义了 puts 函数,但变量 bar 并未定义。

Ruby define?运算符总结

在 Ruby 中,defined? 是一个特殊的运算符,以方法调用的形式来判断传递的表达式是否已定义。它返回表达式的描述字符串,如果表达式未定义则返回 nil。