查看: 3718|回复: 2

[已经解决] 一个def没有具体写明属于哪个class的话这个def属于哪个class呢?

[复制链接]
梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
发表于 2021-5-5 06:27:24 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 taeckle 于 2021-5-5 06:29 编辑

经常看大佬们写代码写一个def都不先设定这个def要在哪个class下生效,所以想问问,如果没有特别标明class的def是会默认属于class Game_System这一类的吗?

还请诸位指点一二,多谢了!

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2021-5-5 13:10:38 | 显示全部楼层
属于全人类
属于全局方法,任何地方都可以调用,但是优先级最低,也就是说如果类里有重新定义一个同名的,优化调用类里的,找不到时再从全局里查找

评分

参与人数 2星屑 +50 赞 +1 收起 理由
RyanBern + 50 认可答案
taeckle + 1 大神威武!

查看全部评分

回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2021-5-5 22:34:53 | 显示全部楼层
本帖最后由 guoxiaomi 于 2021-5-5 22:36 编辑

https://bparanj.gitbooks.io/ruby ... he_main_object.html

The methods defined at the top level becomes private method in the Object. This shows that these methods are bound to the main object.

[pre lang="ruby"]def function666(x);end


p method(:function666) #=> #<Method: main.function666>
p method(:function666).owner #=> Object

p self.private_methods.include?(:function666) #=> true
p Object.private_methods.include?(:function666) #=> true
[/pre]

评分

参与人数 2星屑 +50 赞 +1 收起 理由
RyanBern + 50 认可答案
taeckle + 1 多谢大神!

查看全部评分

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部