【问题标题】:How to print variable's name?如何打印变量的名称?
【发布时间】:2015-06-05 01:29:00
【问题描述】:

是否可以打印变量名以及如何打印?

asdf = Hash.new
asdf = Hash.new

print_name asdf  # => asdf
print_name fdsa  # => fdsa

【问题讨论】:

  • 不可能。您可以列出已知变量,但不能使用该变量打印变量的名称,因为在调用函数print_name 之前它会被其值替换。
  • @HaveNoDisplayName:请注意,链接的解决方案将找到具有相同值的所有变量。它无法区分您传递了哪个变量。 username1 = "tyndall"; username = username1; username2 = username1; 打印所有三个变量。

标签: ruby


【解决方案1】:

打印符号

如果您已经知道变量的名称,您可以简单地打印变量的symbol。在调用puts 时,Ruby 会自动将其转换为字符串。例如:

asdf = Hash.new
puts :asdf

将打印:

asdf

并返回 nil,因为 Kernel#puts 总是返回 nil。

返回一个字符串

如果您希望返回变量的名称而不是仅仅打印它,那么您需要将符号转换为字符串。例如:

asdf = Hash.new
:asdf.to_s
#=> "asdf"

【讨论】:

    【解决方案2】:

    我相信你不需要这种方法,只需手动输入变量的名称即可。

    asdf = Hash.new
    puts "Variable `asdf'"
    

    当你想打印一个变量的名字时,只要写下它的名字。想想看。您已经知道变量的名称,并且您必须以任何一种方式写它的名称来引用变量,拥有这样的方法确实有意义,您不想重复自己,对吧?

    wonderful_method_to_print_variable_name( asdf )  #=> asdf 
    

    为什么不只是"asdf"

    注意,不要与变量的值混淆,那是另一回事。

    【讨论】:

      猜你喜欢
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      相关资源
      最近更新 更多