有趣的Ruby-学习笔记3

Ruby方法

方法名要以小写字母开头,如果用大写字母开头会被作为常量 (这点很奇怪

定义一个无参的方法

def method_name
   expr..
end

定义一个有参的方法

def method_name (var1, var2)
   expr..
end

给参数设定默认值

def method_name (var1=value1, var2=value2)
   expr..
end

调用方法很简单

method_name 25, 30

返回值

很奇特的一点是ruby居然可以默认把最后一个语句的值当做返回值

比如

def test
   i = 100
   j = 10
   k = 0
end

在调用这个方法时,将返回最后一个声明的变量 k。

也可以用常规的return语句来返回值

很有趣的是:如果给出超过两个的表达式,包含这些值的数组将是返回值。如果未给出表达式,nil 将是返回值

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var

返回

100
200
300

可变数量的参数

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def sample (*test)
   puts "参数个数为 #{test.length}"
   for i in 0...test.length
      puts "参数值为 #{test[i]}"
   end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

类方法

有一个奇怪的默认规则:当方法定义在类的外部,方法默认标记为 private。另一方面,如果方法定义在类中的,则默认标记为 public。

Ruby alias 语句

alias 方法名 方法名
alias 全局变量 全局变量

虽然真的不知道这个有什么作用。。。

Ruby undef 语句

还可以动态的取消方法定义(这个不仅觉得没什么用,还觉得最好不要用

时间: 2024-10-20 11:46:31

有趣的Ruby-学习笔记3的相关文章

Ruby学习笔记

Ruby学习笔记 Ruby语言中,以对象为基本单位,可以说所有的元素都是对象.按照之前对于面向对象程序的理解,对象是指包含了特定属性和方法集合的一组程序.对象由类来定义,具体的表现为对象实例.也就是说,对象是类的实例化[2]. Ruby语言的基础元素 对象:数值对象.字符串对象.正则表达式对象.时间对象.文件对象.目录对象.数组.哈希.例外对象等 数值对象   由于Ruby中一切数据都是对象,所以我们处理的数字实际上也是对象. a = 10,这样一个简单的赋值语句,实际上应当理解为 a = Nu

ruby学习笔记(1)-puts,p,print的区别

ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将先处理转义再输出p 基本与puts相同,但不会处理参数中的转义符号print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符 1 2 3 4 5 6 7 s = "aaaa\nbb\tbb" p s p "****************" puts s p

ruby 学习笔记 2 -变量

变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以不建议使用. 局部: 在一定范围内有作用.如 i = 10 ,其中i 就是一个局部变量 常量: 例如圆周率Pi,但是Pi 我们可以赋予他其他值,是可以变化的. 常量的首个字母必须大写,当试图改变常量值时,解释器会给出警告“ex4.rb:19: warning: already initialized

ruby 学习笔记 1

写ruby blog  系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ruby 以及其他文档记录:有道云笔记 关于ruby 学习ruby 通常会介绍下ruby的历史和发展,但是我觉得这些有的废话, 关于ruby,是一个日本人写出来的,是一门解释性语言 这就够了. 开始 在ubuntu上 ,先判断下是否installed ruby. 1 ruby -v 如果安装了会打

Ruby学习笔记0708

#!/usr/bin/env ruby class MegaGreeter attr_accessor :names # 初始化這個物件 def initialize(names = "World") @names = names end # 向每個人說 hi def say_hi if @names.nil? puts "..." elsif @names.respond_to?("each") # @names 是可以迭代的陣列容器 @nam

ruby学习笔记(2)-chomp,chop的区别

还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在http://www.w3cschool.cc/ruby/ruby-string.html中得到的关于Ruby字符串chop和chomp的用法介绍如下: 单从这几句话,还是有些不明白(貌似借鉴于perl语言中的chop和chomp函数的用法),然后百度了一下,我在http://blog.chinaun

【ruby学习笔记】Hello World

程序员学习任何一门新语言,总是从用新语言写一个Hello World开始的,我们也不例外,先用ruby写一个极简的Hello World. 说极简应该实至名归,因为只有一行代码: <span style="font-family:SimSun;font-size:18px;">puts "Hello, Ruby!";</span> 把上述代码保存到 helloWorld.rb 文件(ruby脚本的后缀是.rb),然后执行 ruby hello

Ruby学习笔记一

最近由于学习Puppet相关知识,所以学习一下ruby方面的知识,下面是对于一些入门的总结. ruby的开始语句与结束语句. BEGIN { code } END{ code } 类中的变量: 局部变量 “_”开头----方法中定义的变量,只能在方法中使用. 实例变量 “@”开头-----实例从对象到对象的改变,可以跨越方法或者实例. 类变量 “@@”开头------可以跨对象使用,属于类,是类的属性 全局变量  “$”开头------跨类使用 使用new 创建对象 对象=类.new 创建带有参

【ruby学习笔记】初探ruby

之前一直对ruby只停留在听说过的状态,最近有一些闲暇的事件,学习一下ruby,为将来的ruby on rails开发做一些准备. ruby由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年.相对于java这样的大而全的开发语言,ruby可以说是小而美的,非常类似于python,通常这样的语言的代码量只有java的五分之一吧,而且学习起来也比较容易,如果有效提高开发速度. ruby有很多优秀的特性,如果要说两个最重要的特点,我想我会选择1.完全面向对象:2

Ruby 学习笔记1

Ruby已死,学习只是为了看redmine源码与理解动态语言..net 这边有F#,Java那边有Groovy Ruby 是脚本语言,所以继承了脚本语言的落点,ruby大小写敏感,常量要求首字母大写 改变常量不会报错,因为只是约定... Ruby方法后面可以不跟着括号,所以看见.名称,别以为就是属性... Ruby 中hash是字典,但是可以定义相同的key,而此时后面的key会覆盖前面的key对应的value,而此时字典中元素的个数不会最会增加,也就是说后面的相同key只是起到了改变value