设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1383|回复: 4

[已经解决] Ruby中如何获取变量的变量名称?

[复制链接]

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
55
在线时间
327 小时
注册时间
2009-3-9
帖子
355
发表于 2014-8-9 12:18:01 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
各位大大们,小弟最近在研究Ruby,想请教一个问题:

现有一个小脚本:
RUBY 代码复制打印
  1. class Test
  2.   def self.new
  3.     $name = xxxx #这一步怎么写呢?
  4.   end
  5. end
  6. test = Test.new
  7. p $name  -> "test" # 如何实现呢?


就是ruby中如何获取一个变量所引用的变量名称呢?
新手学习中.....努力吧!!

[动态]还没有进行过任何战斗 (打开TA的战斗卡片)

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
1537
在线时间
4022 小时
注册时间
2010-10-4
帖子
10775

开拓者贵宾

发表于 2014-8-9 14:33:32 | 显示全部楼层
RUBY 代码复制打印
  1. class Test
  2.   def initialize(name)
  3.     $name = name
  4.   end
  5. end
  6.  
  7. test = Test.new(local_variables.first.to_s)
  8. p $name #=> "test"

点评

。。。。你这个明显改变了我原有的类好吧,主要就是要不传参数呢。。。  发表于 2014-8-11 14:21
回复 支持 反对

使用道具 举报

[动态]还没有进行过任何战斗 (打开TA的战斗卡片)

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
1537
在线时间
4022 小时
注册时间
2010-10-4
帖子
10775

开拓者贵宾

发表于 2014-8-11 14:24:08 | 显示全部楼层
本帖最后由 taroxd 于 2014-8-11 14:28 编辑

那么这段代码里,你想要获取的是什么呢?
RUBY 代码复制打印
  1. class Test
  2.   def self.new
  3.     $name = xxxx
  4.   end
  5. end
  6. test = Test.new
  7. p $name  -> "test"
  8.  
  9. test1 = test2 = @test3 = Test4 = $test = Test.new
  10. p $name -> ??
  11.  
  12. Test.new
  13. p $name -> ??
  14.  
  15. test = -> { Test.new }
  16. p $name -> ??
  17. test.call
  18. p $name -> ??
  19.  
  20. test = Hash.new(Test.new)
  21. p $name -> ??



当楼主把这些问号都填上之后,我们就召唤@晴兰 来帮楼主实现吧

点评

请问你们的代码是使用什么工具 复制出来的,宽恕我落后啊·  发表于 2014-10-21 23:22
第11行之后的呢?  发表于 2014-8-13 08:47
说对了,有多少就加多少,其实就是数组  发表于 2014-8-13 08:42
我猜的  发表于 2014-8-11 21:57
%w[test1 test2 @test3 Test4 $test].join("#") "" "" "" ""  发表于 2014-8-11 21:57
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv2.观梦者

梦石
0
星屑
881
在线时间
1381 小时
注册时间
2010-8-9
帖子
3470
发表于 2014-10-18 00:45:56 | 显示全部楼层
本帖最后由 寒冷魔王 于 2014-10-18 00:52 编辑
  1. class Test
  2.   def self.new
  3.     $name = /`(.*)'/ =~ caller.first ? $1 : nil
  4.   end
  5. end
  6. def test
  7.   return Test.new
  8. end
  9. test
  10. p $name
复制代码
@taroxd   其实函数也可以看作是一种变量。
SRPG on RM 项目研发组 正式成立。目前SRPG·RMVA系统进度88.8%。SMRC Kernel 进度90%
↖(^ω^)↗热烈庆祝~SMRC Ver5.1 SRPG战棋地图移动范围生成脚本正式发布~~
-----------------------------------------------------------------------------------------
SMRC具有高性能、高兼容、定制自由、使用方便的特点。
1.性能,100移动力轻松算出,无压力;
2.兼容,RGSS1-3通吃,效率保证;
3.支持移动形状定制,支持4方位、6方位、正方形或其他任意有移动规律的形状;
4.可以充当高性能寻路来使用。
【链接点此】
-----------------------------------------------------------------------------------------
【2016/01/06更新 | 改版】RM脚本编辑器Gemini
-----------------------------------------------------------------------------------------
回复 支持 反对

使用道具 举报

TA还没有解放自身的潜力。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
218 小时
注册时间
2013-12-17
帖子
386
发表于 2014-10-20 08:58:57 | 显示全部楼层
是想返回是谁调用了这个$name?
RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2019-8-25 22:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表