Project1
标题: Ruby中如何获取变量的变量名称? [打印本页]
作者: ky52879 时间: 2014-8-9 12:18
标题: Ruby中如何获取变量的变量名称?
各位大大们,小弟最近在研究Ruby,想请教一个问题:
现有一个小脚本:
class Test
def self.new
$name = xxxx #这一步怎么写呢?
end
end
test = Test.new
p $name -> "test" # 如何实现呢?
class Test
def self.new
$name = xxxx #这一步怎么写呢?
end
end
test = Test.new
p $name -> "test" # 如何实现呢?
就是ruby中如何获取一个变量所引用的变量名称呢?
作者: taroxd 时间: 2014-8-9 14:33
class Test
def initialize(name)
$name = name
end
end
test = Test.new(local_variables.first.to_s)
p $name #=> "test"
class Test
def initialize(name)
$name = name
end
end
test = Test.new(local_variables.first.to_s)
p $name #=> "test"
作者: taroxd 时间: 2014-8-11 14:24
本帖最后由 taroxd 于 2014-8-11 14:28 编辑
那么这段代码里,你想要获取的是什么呢?
class Test
def self.new
$name = xxxx
end
end
test = Test.new
p $name -> "test"
test1 = test2 = @test3 = Test4 = $test = Test.new
p $name -> ??
Test.new
p $name -> ??
test = -> { Test.new }
p $name -> ??
test.call
p $name -> ??
test = Hash.new(Test.new)
p $name -> ??
class Test
def self.new
$name = xxxx
end
end
test = Test.new
p $name -> "test"
test1 = test2 = @test3 = Test4 = $test = Test.new
p $name -> ??
Test.new
p $name -> ??
test = -> { Test.new }
p $name -> ??
test.call
p $name -> ??
test = Hash.new(Test.new)
p $name -> ??
当楼主把这些问号都填上之后,我们就召唤@晴兰 来帮楼主实现吧
作者: 寒冷魔王 时间: 2014-10-18 00:45
本帖最后由 寒冷魔王 于 2014-10-18 00:52 编辑
- class Test
- def self.new
- $name = /`(.*)'/ =~ caller.first ? $1 : nil
- end
- end
- def test
- return Test.new
- end
- test
- p $name
复制代码 @taroxd 其实函数也可以看作是一种变量。
作者: 国产吃货 时间: 2014-10-20 08:58
是想返回是谁调用了这个$name?
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |