Project1

标题: 脚本学习问题 [打印本页]

作者: xjzsq    时间: 2015-2-10 20:30
标题: 脚本学习问题
如图,有以下两个问题:
1.什么是先准备 @name 实例变量,使用 name、name= 方法使对象的实例变量在对象外也可以访问?
2还有def name=(name)    @name = name
  end
是函数定义,还是定义新方法?

脚本.jpg (52.57 KB, 下载次数: 21)

就是这里

就是这里

作者: taroxd    时间: 2015-2-10 20:44
本帖最后由 taroxd 于 2015-2-10 20:49 编辑

1. alex.name = "阿莱库斯"   这句话是在对象外的。你不能靠 @name = "阿莱库斯" 来更改它的值,所以要通过 name= 方法来访问。

“准备实例变量”这句话就是说这个例子用到了 @name 实例变量的意思... 大概是翻译表达不确切吧。我也忘了这句话是不是我翻译的了。总之这句话不重要,无视就好了。

2. 函数和方法在 Ruby 中基本是同义词。一般称方法居多。
作者: xjzsq    时间: 2015-2-11 19:13
taroxd 发表于 2015-2-10 20:44
1. alex.name = "阿莱库斯"   这句话是在对象外的。你不能靠 @name = "阿莱库斯" 来更改它的值,所以要通过 ...

1.什么是在对象外?
2.什么是name= 方法?
3.为什么我没见过def name=(name)   
@name = name
  end 的形式?
4.什么是foo.name = bar 的形式
作者: taroxd    时间: 2015-2-11 19:43
xjzsq 发表于 2015-2-11 19:13
1.什么是在对象外?
2.什么是name= 方法?
3.为什么我没见过def name=(name)   

1. 这个问题要说清楚很复杂。简而言之,在方法定义中就是对象内,否则基本上是对象外(不考虑类和顶层环境也是对象)。
RUBY 代码复制
  1. # 对象外
  2. class SomeClass
  3.   def some_method
  4.     # 对象内
  5.   end
  6.   # 对象外
  7. end
  8. # 对象外


2. 一个方法,名字叫做 name=

3. 在脚本编辑器里全局搜索 =(
  大概能看到近50个结果吧

4. 小明.名字 = 小红
作者: xjzsq    时间: 2015-2-11 20:57
taroxd 发表于 2015-2-11 19:43
1. 这个问题要说清楚很复杂。简而言之,在方法定义中就是对象内,否则基本上是对象外(不考虑类和顶层环 ...

非常感谢,问题已解决
你帮我回答一下我的“ 脚本冲突问题”的帖子吧,万分感谢!!!
诚挚要求(或叫恭请,劳驾您)




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