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

Project1

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

[已经解决] 关于一个函数作用问题,看不懂

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
4 小时
注册时间
2011-10-16
帖子
81
跳转到指定楼层
1
发表于 2011-11-5 21:36:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

2
发表于 2011-11-5 22:04:15 | 只看该作者
问号是可以做关键字的(大雾)或许,这个本来就是判断函数(刚才那个a or b的返回的应该是布尔变量)
回复

使用道具 举报

Lv4.逐梦者

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

贵宾

3
发表于 2011-11-5 22:24:33 | 只看该作者
本帖最后由 后知后觉 于 2011-11-5 22:31 编辑

函数最后如果没有设置 return 返回值 会用该函数内最后一次的运算的值作为返回值.
函数的命名 在结尾处可以用 ? 和 !
带 ? 号的一般表示该函数返回的是 true/false
带 ! 号的一般表示该函数具有破坏性
还可以用 []  []= 作为函数名(Array类 Game_Switches类 Game_Variables类 都有)
关于返回值还有一个例外情况 当定义的函数名最后是 = 号的情况
返回值一定是该函数的参数.就算该函数设置了返回值 return xxx
但这样的函数的返回值还是传递给他的参数.
  1. class ABC
  2.   def initialize
  3.     @a = 2
  4.   end
  5.   def a
  6.     @a
  7.   end
  8.   def a=(a)
  9.     @a = a
  10.     return 999
  11.   end
  12. end
  13. b = ABC.new
  14. p b.a = 5  # 显示 5 而不是 999
  15. exit
复制代码
你帖的那 effect? 的定义是 RPG::Sprite 类里的
这东西就是判断实例对象的 闪烁白光、红光啊动画播放啊什么的效果是否正在进行中.
这个主要就是拦截 Scene_Battle 4 里定义的那些东西的调用











你知道得太多了

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
4
发表于 2011-11-6 01:10:13 | 只看该作者
这是 Ruby 受 Lisp 影响之处——方法以问号结尾表示“谓词"(predicate),通常返回布尔值;函数主体没有语句,只有计算,这是函数式语言风格,有别于命令式语言风格。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 01:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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