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

Project1

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

[已经解决] def item=(item) 这样的函数定义是什么意思?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
跳转到指定楼层
1
发表于 2010-8-26 21:50:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 wangswz 于 2010-8-26 22:22 编辑

  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
貌似是在商店窗口中为获取当前选取物品的一个传递参数的函数
可是def部分看不懂..  item=(item)?

Lv1.梦旅人

万物创造者

梦石
0
星屑
54
在线时间
352 小时
注册时间
2008-2-15
帖子
2432
2
发表于 2010-8-26 22:02:19 | 只看该作者
一个外部更改item的接口,括号可省略
From mortal hope immortal power springs.
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
263
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

3
发表于 2010-8-26 22:09:27 | 只看该作者
class A
   def initialize
     @aa = 1;
   end
end

a = A.new
p a.aa #=> error

--------------------------------------------

class A
   def initialize
     @aa = 1;
   end
   def aa
     return @aa;
  end
end
a = A.new
p a.aa  #=> 1
p a.aa()  #=> 1
a.aa = 2 #=> error

--------------------------------------------

class A
   def initialize
     @aa = 1;
   end
   def aa=(index)
     @aa = index;
  end
end
a = A.new
p a.aa  #=> error
a.aa = 2 #=> @aa = 2 <=> a.aa=(2)

评分

参与人数 1星屑 +20 收起 理由
wangswz + 20 豁然开朗

查看全部评分


《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
385 小时
注册时间
2007-7-27
帖子
4106

开拓者

4
发表于 2010-8-27 02:38:23 | 只看该作者
def xxx相当于设置了只读属性attr_reader
def xxx加上def xxx= 相当于设置了可写属性attr_accessor
吸吸
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1055
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

5
发表于 2010-8-27 08:32:19 | 只看该作者
和元编程一个道理,不过这里面涉及到了一个俗称的约定(不一定要遵守)
以=号结尾的方法通常是setter,会为同名实变量设定值;
以?号结尾的方法返回的是一个所谓的布林值,也就是true或者false;
以!号结尾的方法表示该方法具有破坏性,所以要小心操作。


所以不必要去过分纠结方法中的=号,只要方法名合法就行了。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-15 01:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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