Elevenorth 发表于 2016-10-4 14:23 第13行的代码这么写你看懂了吗?
实际上,就是方法调用的时候省略了括号,同时等号左右两边加了一个(不会产生歧义的)空格而已 并不是特殊的用法,实际上,只要不会产生歧义,所有的方法调用都可以省略括号
|
喵呜喵5 发表于 2016-10-4 01:31 定义一个名称为a的普通函数,为其赋值b。 函数内容是在控制台内输出这个b。 结束函数定义。 大概是这样吧……教程内有解释,所以我知道name=是一个方法名,但我无法理解它怎样让@name成为可在Person类外使用的实例变量…… |
Elevenorth 发表于 2016-10-3 23:03 不……你必须理解……因为这个是非常核心同时又是非常基础的知识…… 这个方法你能看得懂吗?
name= 只是一个含有等号的方法名而已 至于它的功能则是提供一个给外部访问的接口,如果你这个Person 的名字完全不会变得话,确实毫无用处,否则的话,这个方法就是为了第13行的 alex.name = "阿莱库斯" 这句代码来使用的,你可以试着把 def name= 这个方法删掉之后再运行一下看看 |
xjzsq 发表于 2016-10-3 22:31 也就是说,它只是一个Ruby下的一种语法? 就像p,print,msgbox那样的固定东西,不必理解只需记住么? |
实例变量时只能在对象内部使用的变量,但是现在我们想在类的外部使用它,就要通过accessor方法来获得,即用 def name=(name) @name = name end 来让@name能在person这个类以外也可以使用。 可以看看360百科:http://baike.so.com/doc/2088801-2209690.html#2088801-2209690-3 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-21 23:04
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.