ruby简单的基本 6
模
像类似的模块,那里 class method 和 instance method。
module 没有new不能生成对象的例子
其中 class method 所谓的模块在模块化的方法,它能够直接调用。
module Foo
def self.hello
puts 'hello world!'
end def Foo.dear #module全局作用域内的self还是没有变,就是Module;
puts 'dear..'
end NUM = 100 end
Foo.hello #=> 'hello world!' 调用模块方法 模块名字.方法名字
Foo.dear #=> 'dear..' 调用模块方法 模块名字.方法名字
Foo::NUM #=> 100 引用一个常数,使用模块名和两个冒号。
而对于模块里面的 instance method 实例方法,这样的方法不能直接调用。须要mixin到一个类中。
主要有两种形式:
一种是include,方法会被加入到实例方法中。
一种是extend,方法会被加入到类方法中。
module M
def self.m_fun
puts 'm fun'
end def instance_fun
puts 'instance fun'
end NUM = 100
end M.m_fun
M::m_fun
puts M::NUM puts '-----------------' class A
include M
end #A.m_fun
#A.instance_fun
#A.new.m_fun
A.new.instance_fun puts '-----------------'
class B
extend M
end #B.m_fun
B.instance_fun
#B.new.m_fun
#B.new.instance_fun
一些总结
require, load,include都是Kernel模块中的方法。他们的差别例如以下:
require,load用于包括文件。include则用于包括的模块。
require载入一次,load可载入多次。
require载入Ruby代码文件时能够不加后缀名,load载入代码文件时必须加后缀名。
require用于加载普通情况下的库文件。和load用于加载配置文件。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
ruby简单的基本 6的更多相关文章
- ruby简单的基本 3
类 Ruby一切都是对象,它包含了一个恒定.例如,可以使用.class物业查看对象的类型,你可以看一下1.class.你会发现常1类型是Fixnum,1但它是Fixnum的一个例子. Ruby本类cl ...
- ruby简单的基础 5
方法和代码块 在Ruby中.{}或do...end之间的代码是一个代码块.代码块只能出如今一个方法的后边,它紧接在方法最后一个參数的同一行上,一般由yieldkeyword调用代码块中的代码. 方法是 ...
- ruby简单的基础 4
后缀标点符号 =结尾假设方法名字以=结尾的,那么在调用此方法时能够省略这个=. ?结尾作为一个实用惯例,那些返回布尔值的方法通常都有一个以问号结尾的名字. .结尾这个命名惯例通常时对两种方法区分:以感 ...
- ruby简单的基础 2
1.代码块 代码块是用大括号或者do...end括起来的一系列代码.{ #this is a block} do #this is a blockend [1,2,3,4,5].each {|i| p ...
- ruby利用Zip Gem写一个简单的压缩和解压的小工具
在UNIX下的我们怎么会沦落到用ruby写压缩和解压工具呢?直接上shell啊!但是请允许本猫这次可耻的用ruby来玩玩吧!其实ruby GEM中有很多压缩解压包,我选的是Zip,也许是因为名字符合K ...
- [Ruby on Rails系列]6、一个简单的暗语生成器与解释器(上)
[0]Ruby on Rails 系列回顾 [Ruby on Rails系列]1.开发环境准备:Vmware和Linux的安装 [Ruby on Rails系列]2.开发环境准备:Ruby on Ra ...
- ruby和Python简单对比
前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果 序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时 ...
- 一个简单的ruby生成器例子(用连续体Continuation实现)
ruby中有很多经典的驱动器结构,比如枚举器和生成器等.这次简单介绍下生成器的概念.生成器是按照功能要求,一次产生一个对象,或称之为生成一个对象的方法.ruby中的连续体正好可以用来完成生成器的功能. ...
- Ruby学习笔记2 : 一个简单的Ruby网站,搭建ruby环境
Ruby on Rails website 的基础是 请求-返回 循环. 首先是浏览器请求服务器, 第二步,Second, in our Rails application, the route ta ...
随机推荐
- Grub2配置详解(转)
grub2基础教程-修订版 smallapple 目录 一.grub2新特性 二.grub2安装与启动 三.grub2配置文件 ...
- android实现应用程序仅仅有在第一次启动时显示引导界面
概述 SharedPreferences的使用很easy,可以轻松的存放数据和读取数据.SharedPreferences仅仅能保存简单类型的数据,比如,String.int等.通常会将复杂类型的数据 ...
- [Windows Phone] 以多国语言做为开发前提 (1)
原文:[Windows Phone] 以多国语言做为开发前提 (1) ? 前言 在先前 TechDays 2013 的课程 [开发 Windows Phone 商务应用程式就是这麽快] 中,其中一个部 ...
- Acdreamoj1115(数学思维称号)
意甲冠军:1,3是完美的数,假定a,b是完美的数,然后,2+a*b+2*a+2*b,结论认为,n无论是完美的数字. 解法:開始仅仅看出来2+a*b+2*a+2*b=(a+2)*(b+2)-2,没推出很 ...
- CodeForces 10C. Digital Root
乞讨A.B.C ∈[1.N] && A*B != C,d(A*B) == d(C)组的数量. 首先要知道d(x) = (x%9 == 0 ? 9 : x%9); 那么则会有A*B == ...
- 写一个 docker 打击一系列手册
感谢您的关注,分享也再次给自己一个学习的.机会组织和总结.对未来一段时间内准备一个关于 docker 一系列的实际应用,其中的一些内容此前曾宣布.准备再次修改和整理. 以下是主要的文件夹中的一个: 创 ...
- 左右db_block_size了解和实验
关于db_block_gets了解和实验 实验 一. 自己手动创建的小表 创建一个区大小为 40k SYS@ORCL>show parameter db_block_size NAME ...
- HDU 1061 Rightmost Digit解决问题的方法
求大量N^N的值最右边的数字,即最低位. 它将能够解决一个简单二分法. 只是要注意溢出,只要把N % 10之后.我不会溢出,代替使用的long long. #include <stdio.h&g ...
- 【LeetCode】【Python解读】Container with most water
这个问题是芭芭拉在采访中遇到的,不幸的是,的复杂性O(n2)该,太失望了,难怪没有通过面试. Given n non-negative integers a1, a2, ..., an, where ...
- ICT工作的思考<两>
2周奋战.我负责的LB昨天完成了最后一个模块.最后20日. 一周早于预期,经理说,出乎他的意料.So 奖励表,昨日,管理人员与我们合作,吃烧烤补补身子.我只想说,最后一个喘息. 这两周的生活确挺忙碌的 ...