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

Project1

 找回密码
 注册会员
搜索
查看: 962|回复: 9
打印 上一主题 下一主题

[已经解决] 方法参数的问题

 关闭 [复制链接]

Lv1.梦旅人

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
帖子
995

贵宾

跳转到指定楼层
1
发表于 2009-7-24 21:58:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何当传一个参数给方法时,在方法中创建该变量名。
def a(b)
   参数的变量名 = 1
  p 参数变量名
end
self.a(away)
等同于
   away = 1
  p away
就算痛也要做,宅必备宅人的必备网站

Lv4.逐梦者

梦石
0
星屑
6850
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

2
发表于 2009-7-24 22:23:11 | 只看该作者
有点深奥……

有点弯……

这样执行有必要吗- -











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
3
发表于 2009-7-24 22:29:24 | 只看该作者
有点深奥……

有点弯……

这样执行有必要吗- -
后知后觉 发表于 2009-7-24 22:23


说不定在某些场合还会用的上~
其实类似这样的情况也可以用 array 来完成 - -~

这个问题以前也想过,等待紫苏大的降临吧~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6850
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

4
发表于 2009-7-24 22:47:10 | 只看该作者
LZ要的效果在我能力之外

很难想象。。。











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
5
发表于 2009-7-24 22:50:18 | 只看该作者
没听明白LZ的意思,哪位能解释一下
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6850
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

6
发表于 2009-7-24 22:58:11 | 只看该作者
本帖最后由 后知后觉 于 2009-7-24 23:02 编辑

我是这样理解的
一个变量又或者是对象- - 比如叫
away
然后把这个变量传递给方法 a(away)
然后在方法a的内部创建一个变量叫 away
然后给这个新建的away = 1 再 p away

一句话就是传递给方法a的是一个要新建的变量的变量名- -











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
7
发表于 2009-7-24 23:49:31 | 只看该作者
用Hash(哈希表) 制作 不知道可不可行?

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
8
发表于 2009-7-25 00:52:25 | 只看该作者
本帖最后由 TERENCE 于 2009-7-25 00:56 编辑

利用Hash(哈希表) 达成效果
  1. class Create_Variable_Name
  2.   attr_accessor :variable_name
  3.   def initialize
  4.     @variable_name = Hash.new
  5.   end
  6.   def name(variable_name)
  7.     @variable_name[variable_name] = nil
  8.   end
  9. end
复制代码
h = Create_Variable_Name.new
h.name("KA")
h.name("KB")
h.name("KC")
p t = h.variable_name # {"KA"=>nil, "KB"=>nil, "KC"=>nil}
p t["KA"] = 10 # 10
p t # {"KA"=>10, "KB"=>nil, "KC"=>nil}
p h.variable_name # {"KA"=>10, "KB"=>nil, "KC"=>nil}
# 運算
p t["KA"] += 10 # 20
p t # {"KA"=>20, "KB"=>nil, "KC"=>nil}
p h.variable_name # {"KA"=>20, "KB"=>nil, "KC"=>nil}

感觉好像没什么意义 = =
# 创建该变量名
h = Create_Variable_Name.new
h.name("创建变量名")

# 变量運算
t = h.variable_name
t["创建的变量名"] = 10 # 10

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
9
发表于 2009-7-25 09:05:10 | 只看该作者
  1. eval("
  2. def a(var)
  3.   var = 1
  4.   p var
  5. end
  6. ")

  7. a("my_var")
复制代码
或者:

  1. def a(var)
  2.   eval("#{var} = 1")
  3.   p eval("#{var}")
  4. end

  5. a("my_var")
复制代码
局部变量比较特殊——非局部变量在 eval 之后就可以在外部直接调用了,但局部变量不行,因为 Ruby 解释器在判断一个不带符号的英文单词是方法还是局部变量时会判断之前是否有对这个单词赋值的语句出现,但如果赋值是在字符串中通过 eval 执行的,Ruby 解释器就不会认为它是一个局部变量,而是一个方法了~而如果这个方法没定义,自然就会报错……实际上内存中这个局部变量已经产生了,所以上面的第二种方法是再次调用 eval 去访问这个局部变量
回复 支持 反对

使用道具 举报

Lv1.梦旅人

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
帖子
995

贵宾

10
 楼主| 发表于 2009-7-25 12:02:49 | 只看该作者
明白了,去试试,多谢指教
就算痛也要做,宅必备宅人的必备网站
回复 支持 反对

使用道具 举报

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

本版积分规则

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

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-1 09:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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