`
fujinbing
  • 浏览: 237263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ruby 中的 module_function 关键字

    博客分类:
  • java
 
阅读更多
模块是ruby特有的功能之一。模块和类很像,但和类最大的不同在于模块不能实例化,也不能继承。模块的作用有两个。一个是用于提供命名空间。第二提供Mix-in功能。Mix-in和继承很像,但它不是继承。

模块的常量和类常用调用方法一样。模块名::常量名。模块的方法调用和类的方法调用不同,可以使用模块::方法名,也可以使用模块.方法名。

模块定义的方法默认是不对外部公开的,(模块内没有public private protect关键字),要将方法对模块外部公开,必须使用module_function。

module ModuleTest

    V1="1.8.6"
    def say()
     puts "hello"
    end
module_function :say
end

puts ModuleTest::V1   #1.8.6
ModuleTest::say         #hello
ModuleTest.say          #hello

分享到:
评论

相关推荐

    Ruby 中的 module_function 和 extend self异同

    在Ruby编程语言中,`module_function`和`extend self`都是与模块(module)相关的特性,它们用于控制方法的可见性和行为。理解这两者的异同对于编写清晰、可维护的代码至关重要。 首先,我们来看`module_function`...

    hw-ruby-intro.zip_SaaS软件工程_hw-ruby-intro_ruby _ruby 中文_saas

    6. **中文资源**:标签中的“ruby_ ruby__中文”表明这可能是针对中文学习者提供的资料,意味着代码注释、文档或教程可能使用了中文,这对于中文使用者来说是一大便利,能更好地理解和学习Ruby语言和SaaS开发。...

    ruby_1_9_3_core_rdocs

    这个"ruby_1_9_3_core_rdocs"中的文件列表“ruby_1_9_3_core”可能包含了所有核心类库的文档,如Array、Hash、String、Class、Module等。这些文档详细阐述了各个类的方法、用法和示例,是学习和调试Ruby代码的得力...

    ruby_1_8_6_core_rdocs

    `ruby_1_8_6_core` 中的文档将详细解释这些类及其方法。 2. **模块(Module)**:Ruby 的模块用于封装代码,提供命名空间,实现多重继承的模拟。`Module` 类定义了如何创建新模块,`include` 方法用于将模块的方法...

    ruby-2.5.9-107.module_el8.4.0+847+ee687b6c.x86_64.rpm

    官方离线安装包,亲测可用

    prototype_oop_javascript_ruby_prototype_

    标题 "prototype_oop_javascript_ruby_prototype_" 暗示了我们将探讨的是关于原型(Prototype)面向对象编程(Object-Oriented Programming, OOP)的概念,主要关注JavaScript和Ruby这两种语言之间的相似性和差异性...

    Ruby-rubybuild编译和安装Ruby

    在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build`来编译和安装Ruby。 `rbenv`是一个用于管理全局或用户级别的Ruby版本的工具,它...

    patch_def_ruby_Metaprogramming_Before_

    总的来说,`patch_def_ruby_Metaprogramming_Before_`的主题涵盖了Ruby中的元编程,特别是如何通过`def_before`这样的技术来增强现有方法的行为。这种技术在很多场景下都非常有用,例如在不修改原始代码的情况下添加...

    笨办法学ruby_笨办法学ruby_ruby_bravevk4_

    Ruby还支持闭包,这是一种强大的工具,可以捕获和存储当前环境的变量,这在函数式编程中尤其有用。 "不墨迹,大量练习"是该教程的一大特点。学习编程不仅仅是理论知识的积累,更重要的是动手实践。书中的每个小节...

    Exercism-exercises-in-Ruby.-ruby.zip

    Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_exercises_in_Ruby._ruby.zip Exercism_...

    Ruby on Rails_ Up and Running

    RUBY的经典之作,对其在RAILS下开发写得很详细

    the_ruby_programming_language原版

    标题《the_ruby_programming_language原版》指向了一本关于Ruby编程语言的英文原版书籍,该书被标识为学习Ruby语言的必备参考书。这本书不仅为Ruby初学者提供了入门知识,而且被认为是掌握Ruby语言的核心资源。书中...

    ruby_1_9_3_core_rdocs.gz

    本文将围绕"ruby_1_9_3_core_rdocs.gz"这个压缩包中的核心API,深入探讨Ruby 1.9.3的关键知识点。 1. **对象系统**:Ruby的核心在于其强大的面向对象系统。在Ruby 1.9.3中,一切皆为对象,包括基本类型如整数、字符...

    test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriv

    标题中的“test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriver”揭示了这个压缩包文件的内容。首先,“test_logger1”可能是一个测试项目或者测试脚本的名称,而“Logger”则指的是Ruby内置的日志...

    label_break_ruby_Metaprogramming_

    标题中的"label_break_ruby_Metaprogramming_"暗示我们将讨论如何使用标签(label)和`break`语句在Ruby中实现多层循环的退出。标签是一种在代码中定义特定位置的方法,可以与`break`或`next`语句配合使用,使它们...

    ruby_on_rails安装部署指导手册

    - 使用 `mkdir /opt/ruby_on_rails` 命令创建安装目录。 - 通过上传工具将软件包上传至 `/opt/ruby_on_rails` 目录下。 - 可以使用 `ll -h` 命令查看上传的文件列表。 #### 四、安装依赖包 ##### 离线安装 - 如果...

    ruby_on_rails_创建一个博客项目.doc

    ruby_on_rails_创建一个博客项目.doc

    函数式-确定性-Ruby取笑___下载.zip

    在Ruby编程语言中,函数式编程是一种编程范式,它强调使用无副作用的纯函数来构建软件。这种编程风格能够帮助开发者写出更加清晰、可预测且易于测试的代码。"函数式-确定性-Ruby取笑___下载.zip"这个文件名暗示了...

    ruby_file_jekyll-paginate-plugin.zip

    ruby_file_jekyll-paginate-plugin

Global site tag (gtag.js) - Google Analytics