#定义方法
def method
puts 'method'
end
#调用时可以带或不带()均可
method #method
method() #method
#使用参数
def methodUseArgs(arg1,arg2)
print arg1,arg2
end
#调用时可以带或不带()均可
methodUseArgs('hello',"World\n")#helloWorld
methodUseArgs 'hello',"World\n" #helloWorld
#使用默认参数
def methodUseDefaultArgs(arg1,arg2="World\n")
print arg1,arg2
end
methodUseDefaultArgs("Hello")#HelloWorld
#使用可变长度的参数
def methodUseVariableLenthArgs(*args)
puts "#{args.join(' ')}"
end
methodUseVariableLenthArgs('hello','world ')#hello world
#使用块block
def methodUseBlock(arg)
if block_given?
yield arg
else
arg
end
end
puts methodUseBlock("no block")#no block
puts methodUseBlock("no block"){|arg| arg.sub('no','')}# block
#使用&将块转为proc对象
class SampClass
def SampClass.methodConvertBlock2Proc(&proc)
@@proc=proc
end
def SampClass.executeProc(amount)
puts "pi*#{amount}->#{@@proc.call(amount)}"
end
end
SampClass.methodConvertBlock2Proc{|amount| result=amount*Math::PI}
SampClass.executeProc(5) #pi*5->15.707963267949
SampClass.executeProc(20) #pi*20->62.8318530717959
#ruby中的方法有个有趣的地方是可以返回多个值
def methodReturn2Variable
return '3Q','ruby'
end
result1,result2=methodReturn2Variable
puts result1,result2 #3Q ruby
#调用时护展数组
def method3args(arg1,arg2,arg3)
print arg1,arg2,arg3,"\n"
end
method3args(1,2,3) #123
method3args(*[1,2,3]) #123
method3args 1,*[2,3] #123
method3args *(1..3).to_a #123
#更一般更灵活的是使用lambda将一个块转换为一个proc对象
proc1=lambda{|n| n*=2}
puts proc1.class #proc
#下面的两种写法是等价的
puts (1..10).collect{|n| n*=2}.join(' ')#2 4 6 8 10 12 14 16 18 20
puts (1..10).collect(&proc1).join(' ')#2 4 6 8 10 12 14 16 18 20
#使用哈希表
def methosUseHash(hashtable)
hashtable.collect{|de| print "key:#{de[0]} value:#{de[1]}\n"}
end
methosUseHash({"key"=>"k","value"=>"v"})#key:value value:v key:key value:k
#可以省略{}
methosUseHash("key"=>"k","value"=>"v") #同上
#更进一步可以省略""号
methosUseHash(:key=>:k,:value=>:v) #同上
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/blackant2/archive/2006/12/03/1427582.aspx
分享到:
相关推荐
学习 Ruby 的旅程即将开始! Ruby 是一种功能强大、灵活的编程语言,广泛应用于 Web 开发、脚本编写和系统管理等领域。下面是学习 Ruby 的一些实用建议:首先,了解 Ruby 的基本概念和语法。 Ruby 是一种面向对象的...
标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...
总的来说,`rubyinstaller-devkit-3.0.2-1-x64 and Ruby 学习笔记.7z`文件包含了一个在Windows上开始Ruby编程所需的基本组件和学习资源。通过安装Ruby和DevKit,你可以轻松地编写、编译和运行Ruby代码,同时结合学习...
这个暑假回家没事干闲...恩,废话就少提,下面我学习Ruby的各个部分。其中Ruby风格这一部分是开放的,因为我暂时还没有形成自己的风格。我用xmind来记笔记,因此我只是把笔记搬到博客上,看看下面的图。好有爱啊!!!
学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及...
Ruby学习笔记 01 类的属性与方法 02 访问控制 03 Container(Array/Hash) 04 Iterator 05 简单数据类型 06 范围 07 方法 08 条件控制 09 异常处理
ruby基础笔记,自学笔记,ruby基础语法非常全面ruby基础笔记,自学笔记,ruby基础语法非常全面
在开始学习Ruby之前,需要确保已经在计算机上安装了Ruby环境。以下是不同操作系统上的安装步骤: - **Windows系统**: 1. 访问Ruby官方网站(https://www.ruby-lang.org/en/downloads/)下载Ruby安装包。 2. 运行...
从给定的文件信息中,我们可以提炼出一系列关于Ruby编程语言的重要知识点,涵盖基础语法、变量类型、...以上总结了Ruby的一些基础知识点,这些内容对于初学者掌握Ruby编程语言至关重要,同时也是进一步深入学习的基石。
GDAL的独特之处在于它的跨平台性,可以在C/C++、Python、Ruby、VB、Java和C#等多种编程语言下使用,且功能一致。对于Python用户,GDAL与Numeric库的集成使得数据处理变得更加便捷,可以利用矩阵运算轻松处理图像数据...
7. **设计模式与重构**:Ruby 中的应用设计模式和重构策略也是笔记的重点。通过源码,我们可以学习如何在 Ruby 中应用经典的面向对象设计模式,以及如何优雅地重构代码。 8. **社区与开源文化**:Ruby Kaigi 强调...
这个笔记里包含了ruby的整型,字符串,浮点数,布尔等基础数据类型,还有数组,哈希hash的用法, 类的定义,函数方法,以及对象定义,其他高级用法解释,除了笔记记录的语法糖之外,还包含了一些解释性的代码,帮助...
这份"Ruby学习资料(含参考手册和Programming Ruby)-中文.rar"压缩包包含了一系列的资源,帮助初学者和进阶者深入理解Ruby语言。 首先,"ruby中文文档(含参考手册和Programming Ruby).chm"是一个综合性的中文参考...
本资源“学习 Ruby 的笔记以及 Demo.zip”显然包含了关于Ruby编程的学习资料和一些实际示例代码,旨在帮助初学者理解并掌握Ruby的基础及进阶特性。 首先,让我们深入了解一下Ruby的核心特性: 1. 面向对象:Ruby是...
学习笔记 ruby --version > ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32] 在入门学习 Ruby 的过程中,看了不少网上的教程,经常遇到的是明明代码和教程上完全一模一样,但是运行后各种报错。 本文主要...
以上是Ruby自学笔记中提及的关键知识点的详细解读,如果要学好Ruby语言,深入理解这些基础知识是非常必要的。Ruby语言的这些特性与规则构成了其独特的编程范式,使得它在动态语言领域中占有一席之地。
### Ruby元编程基础学习笔记整理 #### 一、语言构建(Language Constructs) 在Ruby中,诸如变量、类和方法等元素统称为语言构建(Language Constructs)。这些构建块是构成Ruby程序的基础。 ##### 示例代码分析 ```...
Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。 您可以在 www.ruby-lang.org 的 Ruby 邮件列表上找到松本行弘(まつもとゆきひろ/Yukihiro ...
Ruby 学习笔记 1、简介 定义:一种简单快捷的面向对象脚本语言 开发者:松本行弘 开发时间:1995年 设计目的:A PROGRAMMER'S BEST FRIEND【程序员的最佳朋友】 文件扩展名:rb 2、语言特性 真正的面向对象编程语言 ...