Project1
标题:
rgss中的def的意义到底是什么?为什么一定要用def呢
[打印本页]
作者:
邱小谦
时间:
2018-4-30 15:30
标题:
rgss中的def的意义到底是什么?为什么一定要用def呢
我有一个疑问。为什么rm游戏脚本里面的脚本每实现一段效果,必须要用def...end呢?比如初始化initialize,比如refresh,比如update。甚至有些人写的一些其他的东西,都必须在def..end里面写呢?比如我的窗口需要刷新,为什么不能直接update,一定要def...end里面,大概这个意思吧。
作者:
灯笼菜刀王
时间:
2018-4-30 16:00
本帖最后由 灯笼菜刀王 于 2018-4-30 16:07 编辑
不用def也是可以的,比如 attr_accessor
def是用来表示身份的,比如说,你说你是你,谁能证明?你说你是你,他说你是他,她说你是她,谁又知道你是哪个你?
所以呢,你需要一个能表明身份的东西出来,
def 邱小谦
return 你
end
这样,你说你是邱小谦,那大家都知道是你了, 不会把那边的 海大富 认成你,也不会把这边的 山中狼 认成你
但是呢,你在这里说你是邱小谦,大家认得, 到外面说,人家可不知道了,百度一搜邱小谦,一大堆,哪个邱小谦又是你啊?
所以,如果再多个定义
class P1
def 邱小谦
return 你
end
end
OK, 只要 你这样说
这里 = P1.new
这里.邱小谦
这样大家就知道,你是P1里的邱小谦了。 百度.邱小谦 就不是你了
但是P1这么大,谁又知道你在P1哪里混的
所以,在来一个
class XP区 < P1
def 邱小谦
return 你
end
end
这样, XP区可以找到你 邱小谦 ,P1也能找到你 邱小谦 了
作者:
文雅夕露
时间:
2018-4-30 16:07
def简单的说就是定义方法。
就比如定义我这个id。
def angle
p "夕露"
end
然后这个方法就可以被调用了。
如:a.angle
没有被def的方法名可不能被调用哦。
调用就是找不到该方法的。
作者:
guoxiaomi
时间:
2018-4-30 16:22
def 方法名 方法内容
复制代码
def 是方法的定义,告诉ruby当这个方法名出现在代码里的时候,执行此方法的内容。ruby会按照一定的规律去寻找同名方法,只要找到了一个就会执行方法内容,否则执行方法 method_missing,这个也没有的话就报错,Undefined method for `x'
作者:
xiaohuangdi
时间:
2018-4-30 17:31
defind 定义
作者:
yang1zhi
时间:
2018-4-30 18:13
DEF是方法
你可以把每个DEF都看成是一套功夫
有多少DEF就有多少套功夫。
你本来要 A = 0 这样一招一招来放
你可以把他们写成一套功夫,一次性放出来。
左右左右ABAB
作者:
shitake
时间:
2018-4-30 23:15
本帖最后由 shitake 于 2018-5-1 14:34 编辑
因为 matz 说了 你得这么写 所以大家都得这么写
不过我想知道在楼主的想法里,你是如何告诉电脑你这里写的是什么呢,总不是对着rgss player大喊:“看!这是我的刷新函数!”
[line]1[/line]
@RyanBern
喵喵喵?
第一句指明编程语言中的特定写法是因为语言设计者所做的统一约定,这算是说明最直接的意义了吧。第二句反问是想讲pl里为什么需要这种约定,这算是深层的意义了吧?至于为啥不直接讲而是一个反问,我总得看看提问的人是什么知识储备,才好把这个东西展开讲吧?怎么就不相关了?
作者:
chd114
时间:
2018-5-1 00:43
define的缩写呗···但是提到这个就要去看看C语言了···
有些东西其实只是作者的恶趣味而已,比如Dota2里面炸弹人的25级天赋为什么会有一个攻击力+251,只是作者在玩梗···
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1