i_love_ruby 发表于 2011-10-20 11:39

关于方法调用的问题

上代码:

第一个文件 test_one.rb:

module MyModule

def my_print
    p "hello this a test."
end

end

第二个文件 test_two.rb

classTestTwo

   def to_print

   在这个方法里面如何调用 test_one.rb 的 my_print 呀?

   end

end



瓜瓜, 在不在呀? 给我看看,我搞了半天也不知道咋弄。

我现在用的Eclipse 也没有警告 和 提示,烦的很,

谢谢谢谢谢谢!!!!!!!!!!!!!!!

coolesting 发表于 2011-10-20 12:03

本帖最后由 coolesting 于 2011-10-20 12:05 编辑

require './test_one'
include MyModule

classTestTwo

   #include MyModule
   def to_print

      my_print

   end

endno test

i_love_ruby 发表于 2011-10-20 13:43

回复 2# coolesting


    谢谢~~
我运行了一下,是可以的。
请问能给我讲解一下吗?

require './test_one' 这相当于 Java 中的import ? 还是?

include MyModule 为什么这样用呢?
或者你能告诉我 这样调用的原理是什么?
谢谢~~~
谢谢~~

2gua 发表于 2011-10-20 13:50

自己要看资料哦,别啥都问,这不是好的学习方法咯~~

i_love_ruby 发表于 2011-10-20 14:04

回复 4# 2gua


   

A.

require 'filename'
include ModuleName



B.

include用于包含一个文件(.rb等结尾的文件)中的模块
require一般情况下用于加载库文件



C.

requre,load用于文件,如.rb等等结尾的文件。
include则用于包含一个文件(.rb等结尾的文件)中的模块。
requre一般情况下用于加载库文件,而load则用于加载配置文件。
requre加载一次,load可加载多次



D.

如果说 test_one.rb 中包含一个模块MyModule,和几个类Ca,Cb等等。那么你若想在 test_two.rb 文件中使用

test_one.rb 中的资源,你得这样:

require 'test_one.rb'



若还想在 test_two.rb 的某个类中使用 test_one.rb中的模块,则应在这个类中加入

include MyModule



如果你只想在 test_two.rb 文件的某个类中使用 'test_one.rb' 的模块,你得这样:



require './test_one'

include MyModule

i_love_ruby 发表于 2011-10-20 14:05

{:2_172:} 回复 4# 2gua


    {:3_182:} :em27: {:2_168:}

i_love_ruby 发表于 2011-10-20 14:06

回复 2# coolesting


   通过你的指点,我从网上找了找资料, 请看看我的总结请看看是否有出入.

coolesting 发表于 2011-10-20 14:48

requre加载文件, 只加载一次, load可加载多次

include是包含, 引用, 不加载文件, 一般引用module的方法时用,

这两个相当其它语言的,

require => use
include => import

2gua 发表于 2011-10-21 13:07

Ruby的语法糖很甜,我感觉Ruby追求的理念是魔幻,这对初学者是容易造成困惑的,所以,学好Ruby的最佳方法,是入门时系统些,循序渐进的方式,推荐你学习《Ruby编程语言》。

i_love_ruby 发表于 2011-11-08 09:27

回复 9# 2gua


    谢谢
页: [1] 2
查看完整版本: 关于方法调用的问题