打印

A.1 Ruby程序入口点概念的掌握

本帖已经被作者加入个人空间 本主题由 quzhongwei 于 2008-6-9 23:00 设置高亮

A.1 Ruby程序入口点概念的掌握

伱可以用记事本建立一个Ruby程序的源文件,比如a.rb,内容如下:

puts "Hello, Ruby"


伱可以用:


运行这个程序,输出:Hello, Ruby。
这表明Ruby程序的入口点在第一条可执行语句处。
你也可以在源文件中定义如下的一个方法:

def Foo
    puts "Hello, World!"
end


运行后输出:

Hello, Ruby


这里Foo是方法。
同样,你也可以定义一个类:

class A
    puts "A"
    def WoW
        puts "WoW"
    end
end


伱将会发现在类A中,"A"得到了输出,而类A中的WoW方法没有输出。

综上所述,Ruby程序的入口点为:

第一条可执行语句


完整的例子如下:

puts "Hello, Ruby"

def Foo
    puts "Hello, World!"
end

class A
    puts "A"
    def WoW
        puts "WoW"
    end
end


输出:

Hello, Ruby
A


[ 本帖最后由 quzhongwei 于 2008-6-10 00:20 编辑 ]
本帖最近评分记录
  • drive2me R币 +10 精品文章 2008-6-9 23:55

TOP

Ruby的命名规范里,方法是不能用大写字母的吧?就算是其它的OOPL的驼峰式命名也是首字母小写的吧。
本帖最近评分记录
##############################
MyBlog => Red_World,
MyMail => chenk85@gmail.com
##############################

TOP

是的,首字母小写!
这里只是揭示程序的入口点

TOP

好,俺还没有总结这个入口点呢。
明白了。

谢谢。
Flying Piggy...! 
天地人合一!

TOP

我看不懂啊!以往只接触了一点点也。
本帖最近评分记录
  • quzhongwei R币 +2 我知道你是谁?好好努力。 加点币,以资鼓 ... 2008-6-10 18:24

TOP

如果只有方法定义而无调用的话
应该不会有输出的吧?
至少在我这里是这样.....
本帖最近评分记录
Digging ruby with Pickaxe,
Running agilely on rails

TOP

引用:
原帖由 lkl 于 2008-6-10 17:02 发表
我看不懂啊!以往只接触了一点点也。
那lkl是谁呀?好奇!
Flying Piggy...! 
天地人合一!

TOP

第一条是可执行语句
那在第一条语句处调用方法呢?
本帖最近评分记录
  • drive2me R币 +2 鼓励多参与。 2008-6-13 17:59

TOP

引用:
原帖由 wjpp0000 于 2008-6-10 22:12 发表
第一条是可执行语句
那在第一条语句处调用方法呢?
方法在后定义的话一般是:
XXX.rb:1: undefined local variable or method `。。。' for main:Object (NameError)
除非调用顶层对象的方法。

TOP

以往的编程语言都是从main()开始的,从第一条可执行语句开始是不一样!!!
谢谢楼主
本帖最近评分记录
  • drive2me R币 +2 鼓励多参与。所以要强调出来不同的地方。 2008-6-13 18:00

TOP

已理解,努力下一目标。
本帖最近评分记录
  • quzhongwei R币 +2 你还挺努力啊 2008-6-13 16:55

TOP

不像java那样走main方法运行吗?我还是不懂。

TOP

class中的wow不能使用

TOP

这地方我不谈入口点,对于楼主使用的代码得到的结果我的解释是,因为
Ruby的定义性代码是可执行
参看我另一遍贴子
http://www.ruby-lang.org.cn/forums/viewthread.php?tid=5162&page=1#pid17107

[ 本帖最后由 wtbwtb 于 2008-6-23 13:14 编辑 ]
本帖最近评分记录
  • drive2me 贡献 +10 精品文章 2008-6-23 13:29
  • drive2me R币 +10 精品文章 2008-6-23 13:29
  • drive2me 威望 +10 精品文章 2008-6-23 13:29

TOP

class A
  puts "A"
  def WoW
   puts "WoW"
  end
end
居然有输出,真是奇怪啊,这不是一个类定义吗,并没有实例化啊?

TOP

2008-08-29 11:10 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.60