Project1

标题: 咨询脚本语法 [打印本页]

作者: tan12345    时间: 2014-1-12 20:38
标题: 咨询脚本语法
在Window_Selectable这个类里,发现一种函数写法如下:
def xx1=(xx2)
比如def height=(height)、def active=(active)
问题如下:
1.  xx1=(xx2)中,xx1是否必须和xx2相等?例如def active=(active)能否改成def active1=(active2)
2.  def xx1=(xx2)这样代表什么意思?
作者: 喵呜喵5    时间: 2014-1-12 20:46
类似attr_,让外部类能够修改这个实例变量的值,否则这个实例变量的值只能通过这个类的方法来修改:
类似下面这种感觉
@a = b.new
@a.c = 123
作者: tan12345    时间: 2014-1-12 22:03
喵呜喵5 发表于 2014-1-12 20:46
类似attr_,让外部类能够修改这个实例变量的值,否则这个实例变量的值只能通过这个类的方法来修改:
类似下 ...

那么,函数名是不是必须就等于变量名?
比如def height=(height),第一个height既是函数名,又必须是变量名(变量height)?后面那个height是参数值?
作者: 喵呜喵5    时间: 2014-1-12 22:56
本帖最后由 喵呜喵5 于 2014-1-12 22:58 编辑

class a
  def 载入
    @a=0
    @b=0
  end
  def a的值=(c)
    @a=c
  end
  def 输出
    p @a
    p @b
  end
end


@sample=a.new
@sample.a的值=2
@sample.输出
@sample.b=2 #报错
@sample.a=2 #报错
作者: tan12345    时间: 2014-1-12 23:25
喵呜喵5 发表于 2014-1-12 22:56
class a
  def 载入
    @a=0

如果当作普通函数,我明白,你写的例子,我也看明白了,但是我回到Window_Selectable里看第84行开始
  1. #--------------------------------------------------------------------------
  2.   # ● 设置高度
  3.   #--------------------------------------------------------------------------
  4.   def height=(height)
  5.     super
  6.     update_padding
  7.   end
复制代码
这种函数还有父类函数super?我查遍全工程没看到父类函数有定义啊……
作者: 亿万星辰    时间: 2014-1-13 22:58
def a=(a)
  @a = a
end

def a=(rpgmaker)
  @a = rpgmaker
end

这两个效果一样……但或许后一种会看着更直观一些。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1