Chinaunix

标题: 关于方法调用的问题 [打印本页]

作者: 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

class  TestTwo

   def to_print

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

   end

end



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

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

谢谢谢谢谢谢!!!!!!!!!!!!!!!
作者: coolesting    时间: 2011-10-20 12:03
本帖最后由 coolesting 于 2011-10-20 12:05 编辑
  1. require './test_one'
  2. include MyModule

  3. class  TestTwo

  4.    #include MyModule
  5.    def to_print

  6.       my_print

  7.    end

  8. end
复制代码
no 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:} {: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


    谢谢
作者: 2gua    时间: 2011-11-08 17:56
回复 10# i_love_ruby


    不客气。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2