quzhongwei 2008-6-9 23:05
A.1 作业
为了构造一条可执行语句,我们有如下代码:[code]a = class A
puts "A"
def WoW
puts "WoW"
end
end[/code]请输出这里 a 的值!
maninred 2008-6-9 23:51
a值为空
quzhongwei 2008-6-9 23:56
我们不要把,nil读作【空】,它不空,它是:NilClass类的实例!
常见的错误没有关系,不过以后不要说nil是空!
drive2me 2008-6-9 23:58
哈,有趣的作业。
考概念呢。
他们习惯了,其实就当做Nil就可以了,不必非要翻成中文的。
wjpp0000 2008-6-10 22:10
第一句是入口点
libaoming 2008-6-11 08:45
a = nil
mztest 2008-6-13 10:15
我有一个疑问:
在IRB下写完代码后
A
=>nil
(分别是什么意思?)
可是当我用:
puts a
nil
=>nil
新人新问题。
libaoming 2008-6-13 14:22
=>nil 这是irb返回的,用来提示交互完毕。
mztest 2008-6-13 15:55
那返回的“A"不是a的值吗?
为什么
puts a 却返回nil?
libaoming 2008-6-13 16:11
你看puts "A" 它是打印出字符A而已 它并不返回值
然后定义了方法 WoW,然而呢 也没调用啊 所以可以忽略
既然整个下来都没有什么返回值,就只好返回nil
gongmeihao 2008-6-13 17:07
:( 继续学习中:(
龍崎 2008-6-14 12:14
提问:
是不是这个意思:
因为
a=class A
put "A"
def WoW
puts "WoW"
end
end
最后有两个end,说明 在声明classA的时候,也把他赋值给a了,然后,接下来的
put "A"
def WoW
puts "WoW"
end
只是class中的方法?
put "A" #是打印出一个字符串“A”,对吧?但是他没有return值,WoW方法也没走,所以就
是nil?
另外在ruby中null以nil代替?
neohsiao 2008-6-16 00:21
我有个问题请问:
怎么在类里面调用方法呢?是不是不可以?
如果调用了,有返回值应该是返回的什么?难道是方法的return?
libaoming 2008-6-16 08:49
只要实例类的对象 如:X.new
然后就可以调用了
返回值就要看你的需要了
所以方法都有返回值,即使省略return也是可以的
neohsiao 2008-6-16 10:54
self表示调用当前的类
那么[code]a=class A
puts "A"
def WoW
puts "WoW"
end
self.WoW
end[/code]这样为什么不行?是不是方法一定要实例化才能调用?或者说怎样在类里面就调用类里面的方法?
yangli2005 2008-6-26 13:18
问个完全外行的问题 写完执行句语以后要如何执行啊... 才能返回 a=nil
cjq_999 2008-6-26 20:14
我认为是先把A这个空对象赋值给a,然后A被定义了,而a还是空的
如果想a不是为空,需要在外面赋值:a=A
class Object
puts "A"
def WoW
puts "WoW"
end
end
a=A
这个时候a就等于A了
quzhongwei 2008-6-29 00:26
[quote]原帖由 [i]neohsiao[/i] 于 2008-6-16 10:54 发表 [url=http://www.ruby-lang.org.cn/forums/redirect.php?goto=findpost&pid=16942&ptid=5088][img]http://www.ruby-lang.org.cn/forums/images/common/back.gif[/img][/url]
self表示调用当前的类
那么a=class A
puts "A"
def WoW
puts "WoW"
end
self.WoW
end这样为什么不行?是不是方法一定要实例化才能调用?或者说怎样在类里面就调用类里面的方法? [/quote]
现代程序设计,实例是必须的,并且就是你的实例.(我们总得面向对象啊,至于以后的设计,等你呢)
liuxueming 2008-6-30 17:41
新手
我还是不太懂这段代码有什麽用,仅仅是为了执行 class A中的puts 语句吗?对a来说没
有什么用啊。
hawke 2008-7-30 18:32
正在向前爬...
HmilyChen 2008-8-5 01:21
a 应该为NULL 在第一条语句a=class A 后,a就再也没被赋值,而Class A 为NULL,所以a也为NULL 不知这样理解对不?
arron 2008-9-15 11:45
[quote]原帖由 [i]cjq_999[/i] 于 2008-6-26 20:14 发表 [url=http://www.ruby-lang.org.cn/forums/redirect.php?goto=findpost&pid=17352&ptid=5088][img]http://www.ruby-lang.org.cn/forums/images/common/back.gif[/img][/url]
我认为是先把A这个空对象赋值给a,然后A被定义了,而a还是空的
如果想a不是为空,需要在外面赋值:a=A
class Object
puts "A"
def WoW
puts "WoW"
end
end
a=A
这个时候a就等于A了 [/quote]
我试过 是这样的!
karon_flame 2008-11-4 11:22
[quote]原帖由 [i]neohsiao[/i] 于 2008-6-16 10:54 发表 [url=http://www.ruby-lang.org.cn/forums/redirect.php?goto=findpost&pid=16942&ptid=5088][img]http://www.ruby-lang.org.cn/forums/images/common/back.gif[/img][/url]
self表示调用当前的类
那么a=class A
puts "A"
def WoW
puts "WoW"
end
self.WoW
end这样为什么不行?是不是方法一定要实例化才能调用?或者说怎样在类里面就调用类里面的方法? [/quote]
你定义的实例方法WoW,然后用调用类方法的方式self.WoW来调用是不可以的
这样写[code] 1 #!/usr/bin/ruby
2 #puts "hello,Ruby"
3 #def foo
4 # puts "hello,world"
5 #end
6 class A
7 def self.WoW
8 puts "WoW"
9 end
10 self.WoW
11 end[/code]
karon_flame 2008-11-4 12:10
[quote]原帖由 [i]liuxueming[/i] 于 2008-6-30 17:41 发表 [url=http://www.ruby-lang.org.cn/forums/redirect.php?goto=findpost&pid=17467&ptid=5088][img]http://www.ruby-lang.org.cn/forums/images/common/back.gif[/img][/url]
我还是不太懂这段代码有什麽用,仅仅是为了执行 class A中的puts 语句吗?对a来说没
有什么用啊。 [/quote]
这个问题是要这样的
看看下面两个例子[code]a = class A
7 def self.WoW
8 puts "WoW"
9 end
10 self.WoW
11 end
12
13 puts a.class[/code]输出是NilClass.是个对象哦[code]a = class A
7 def self.WoW
8 puts "WoW"
9 end
10 self.WoW
11 end
12
13 puts a.class.class[/code]这表明NilClass是Class类的一个实例..
这说明ruby里面一切都是对象.....连对象都是某个对象的实例
下个这个例子大概可以说明问题[code]1 #!/usr/bin/ruby
2
3 #重载Class类
4 class Class
5 alias oldNew new
6 def new(*args)
7 print "Creating a new ", self.name, "\n"
8 oldNew(*args)
9 end
10
11 end
12
13 #定义1个新的类(这里仅仅是声明,不会产生输入)
14
15 class A
16 def WoW
17 puts 'wow'
18 end
19 end
20
21 #实例化A类10次,每次实例化A类,都会产生一个nilclass实例,nilclass是class类的一个实例,所以产生了10次输出.
22 for i in (1..10)
23 A.new
24 end[/code]总之,一切都是对象,类本身也是某个对象的实例
[[i] 本帖最后由 karon_flame 于 2008-11-4 12:20 编辑 [/i]]
langwangff 2008-11-4 23:02
self 是Object类
页:
[1]