赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 400 |
最后登录 | 2013-4-25 |
在线时间 | 8 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 8 小时
- 注册时间
- 2013-3-29
- 帖子
- 8
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 ynhr123y 于 2013-4-15 15:40 编辑
鄙人对基础脚本语言有一部分理解有些困难,请求大神指点迷津!
内容如下:
一:
RMXP的帮助文档中,对 函数 进行了如下解释:数字的计算和字符串的显示等,能够进行某种处理的被命名的功能称为函数。
而且,函数的定义也作了如下解释:函数的定义是从 def 开始到 end 结束。
等到 定义类 的时候,帮助文档中提到:方法的定义,和定义普通函数的情况相同。如果在类定义当中加上 def ~ end 的话,就会自动成为该类的方法。
那么我是不是可以理解为:预定义的类中,我新定义的函数,和我自己新定义的类中新定义的方法,他们是一样的?
二:
对于数组和Hash表中的一个用for循环的例子有些理解困难,内容如下:
数组的循环
使用 for 循环,即使没有设定对象的附加码也能指定数组单元。- a = ["艾力克斯","布莱恩","卡罗来"]
- for s in a
- p s
- end
复制代码 我想问一下,以s带入数组a中究竟有什么意义呢?帮助文档中的解释我有些看不懂。同时,这段代码又会输出什么呢?进一步说,在实际运用中又可以起到什么功能呢?
同理,Hash表的帮助文档:- a = {3=>6, 4=>10, 5=>15}
- for k in a.keys
- p k
- end
复制代码 提到了这段,运用了keys的方法获得Hash表的各个主键,这段代码的原理是否和上面的数组代码是一个道理?
三:
帮助文档中的 实变量 部分也有些不懂:
原文:属于个体对象的变量称为实变量。名称以 @ 开头的变量,自动作为实变量使用。局部变量只有在 def ~ end 等结构内部使用时才有效,然而使用实变量的话,只要其对象存在,变量的值就会被保存。实变量一般作为对象的属性来使用。
这里提到的“属于个体对象的变量”中的“属于个体对象”究竟是什么意思呢?
还有,是不是只要以@开头的变量都是实变量?
“只要其对象存在,变量的值就会被保存”又是什么意思?
“实变量一般作为对象的属性来使用”这句话完全不懂
文档中也给了一个例子:- class Person
- def name
- return @name
- end
- def name=(name)
- @name = name
- end
- def hello
- print "我是" + @name + ""
- end
- end
- alex = Person.new
- alex.name = "艾力克斯"
- alex.hello # => 我是艾力克斯
复制代码 随后单独拿出了这一段代码- def name
- return @name
- end
- def name=(name)
- @name = name
- end
复制代码 并说明了,这一段代码和以下代码是一个意思原帮助文档解释:上面的示例是先准备 @name 实变量,使用 name、name= 方法把对象附加上 @name 实变量作为属性。像这样的方法称为附加属性。附加属性也能更简单的像下面那样编写。
attr_accessor :name这样编写是,自动定义与 : 符号右侧名称相同的实变量对应属性的取得和注解方法。上例中是生成 @name 实变量并附加成为属性。
在预置脚本中 attr_accessor 应用得很多。但在只定义属性的取得方法的情况下,一般使用 attr_reader 代替 attr_accessor。
“自动定义与 : 符号右侧名称相同的实变量对应属性的取得和注解方法”
“只定义属性的取得方法的情况下,一般使用 attr_reader 代替 attr_accessor”
这两段文字也很难理解了
以上就是我的所有问题,感谢好心人能解答,谢谢! |
|