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

Project1

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

[已经解决] 请教def 方法名中带有“=()”是什么意思

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9163
在线时间
466 小时
注册时间
2015-5-8
帖子
866
跳转到指定楼层
1
发表于 2021-12-11 19:43:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 taeckle 于 2021-12-11 19:44 编辑

咱目前知道可以用 def 方法名 end 或者 def 方法名(参数) end 定义一个方法,不过最近读某位远古大神的代码发现了个 def 方法名=(***) end 定义了一个方法, 比如这个技能等级脚本里的def level=(new_level):
  1. class ActorSkill
  2.   attr_accessor   :use_cnt    # スキル使用回数
  3.   attr_accessor   :level      # スキルレベル
  4.   attr_accessor   :exp_list   # スキルEXPリスト
  5.   #--------------------------------------------------------------------------
  6.   # ● オブジェクト初期化
  7.   #--------------------------------------------------------------------------
  8. def initialize(skill_id, actor_id)
  9.     @skill_id = skill_id
  10.     @actor_id = actor_id
  11.     @use_cnt = 0
  12.     @level = 1
  13.     @hit = $data_skills[skill_id].hit
  14.     @exp_list = SkillUpdate.make_skill_list(skill_id, actor_id)
  15. end

  16. def reset_use
  17.     @use_cnt = @exp_list[@level]
  18. end

  19. def level=(new_level)   
  20.     return if new_level > SkillUpdate.skill_limit_lv(@skill_id, @actor_id)
  21.     return if new_level < 1
  22.     @level = new_level
  23.     reset_use
  24. end
  25. end
复制代码


这里def level=(new_level)的“=”是什么意思呢?

还请大家多多指教,多谢了!

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2021-12-11 19:59:58 | 只看该作者
没什么意思,方法名就是“level=”
以及ruby允许你在调用以“=”结尾的方法时,可以在“=”前面添加空格,比如下面两种写法是一样的效果
  1. a.level=(level)
复制代码
  1. a.level = level
复制代码

评分

参与人数 3星屑 +50 +2 收起 理由
miantouchi + 1 精品文章
RyanBern + 50 认可答案
taeckle + 1 大神威武!

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 16:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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