Ruby方法

方法名要以小写字母开头。假设用大写字母开头会被作为常量 (这点非常奇怪

定义一个无參的方法

def method_name expr..
end

定义一个有參的方法

def method_name (var1, var2)expr..
end

给參数设定默认值

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

调用方法非常easy

method_name 25, 30

返回值

非常奇特的一点是ruby竟然能够默认把最后一个语句的值当做返回值
比方 
def testi = 100j = 10k = 0
end

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

也能够用常规的return语句来返回值

非常有趣的是:假设给出超过两个的表达式。包括这些值的数组将是返回值。

假设未给出表达式,nil 将是返回值

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-def testi = 100j = 200k = 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.lengthputs "參数值为 #{test[i]}"end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

类方法

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

Ruby alias 语句

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

尽管真的不知道这个有什么作用。。。

Ruby undef 语句

还能够动态的取消方法定义(这个不仅认为没什么用。还认为最好不要用

转载于:https://www.cnblogs.com/wzzkaifa/p/7198837.html

有趣的Ruby-学习笔记3相关推荐

  1. Ruby学习笔记_索引贴

    学习Ruby也有段时间了,在学习的同时也做了些笔记并发到了园子睐.看到园子里的大虾们在出了一系列文章后都会做个索引贴,这样很方便,所以本人今天抽了个空就把它整理了下,方便自己的同时也方便感兴趣的朋友. ...

  2. ruby学习笔记(11)--symbol与hash参数

    symbol是啥就不深入的讨论了,只简单说说symbol的好处 ruby内部对于每个对象,都会有一个数字id用来标识并区分,可以用xxx.object_id来查看 puts "0001&qu ...

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

    还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...

  4. Programming Ruby学习笔记一

    最近在学习Programming Ruby,做点读书笔记来记录下自己的成长也是不错的.当然更希望的是各位大牛能指出本人的不足,在这里先谢谢大家了. 第一章     入门 讲的是如何安装Ruby,在Ru ...

  5. Ruby 学习笔记(和 Python3 语法进行对比)

    我是先接触 Python3 的,如果我自己主动来选择,可能不会再去学 Ruby(可能先入为主的思想太根深蒂固了,不过最主要的还是太懒了),然鹅由于种种原因,我还是要来看一下Ruby(真是天理难容,/大 ...

  6. Ruby学习笔记:一、数据类型

    2019独角兽企业重金招聘Python工程师标准>>> 今天老大问大家,谁有兴趣学习下Ruby,部门马上要有一个使用Ruby的项目.入职两个月,几乎每天都是做一些SQL优化或是JS优 ...

  7. Ruby 学习笔记3

    在Ruby中有很多方法是以?和!号结尾的 "?"被用于标示谓词,即返回Boolean直的方法,如Array.empty?(判断数组中元素是否为空) "!"出现在 ...

  8. 【ruby】ruby学习笔记之--环境搭建

    1.安装ruby环境 这里以windows为例,ruby可以安装在Linux中,首先.先到ruby的官网下载https://rubyinstaller.org/downloads/最新的ruby环境, ...

  9. Ruby学习笔记-循环与选择结构

     一.循环结构 1.    for-in语句: Ruby提供的for...in语句主要用于迭代数组和Hash对象中的元素,与其它语言的for 语句有一定的差距,语法格式: for val  in  ...

  10. ruby学习笔记(3)--语法层面的先见之明

    看了几天ruby,发现c#中很多一直被称道的语法特性,ruby早在几年前就有了: 1.c#中的params关键字 class Program{static void Main(string[] arg ...

最新文章

  1. 使用 electron-updater 自动更新应用
  2. 数组-删除排序数组中的重复项(双指针法)
  3. 窗口和元素的大小:offset client scroll
  4. re:Invent第三天:除了拥抱混合云,AWS还一口气发了这些新产品
  5. linux mem设备是什么,linux下/dev/mem分析
  6. python计算结果向上取整_python中的向上取整向下取整以及四舍五入的方法
  7. Linux下的iscsi(设备的共享服务)
  8. bcb quickrep保存为 图片_不容错过的SCI图片处理和组图方法
  9. 全网最好用的关键词的组合软件使用教程可排列组合随机生成
  10. android webview权限申请_android中使用WebView请求网页
  11. 比亚迪宋Pro电路图和维修手册
  12. 【PMP】PMBOK 笔记 第6章 项目时间管理
  13. gyb优化事项(1)
  14. 工业级交换机级联介绍
  15. 【matlab选题推荐二】MATLAB差影法车型识别算法研究
  16. 1628_MIT 6.828 xv6_chapter0操作系统接口
  17. Linux进程信号——信号的产生
  18. Java数字位数不足前面补0的几种办法
  19. php5漏洞汇总,ThinkPHP 5.x RCE 漏洞分析与利用总结
  20. vue 生命周期 详解

热门文章

  1. Shell基础学习(六) 流程控制
  2. 转:fopen与open可以转换吗
  3. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
  4. python饼状图教程_Python数据可视化:饼状图的实例讲解
  5. AUTOSAR从入门到精通100讲(三)-基于UDS服务的BootLoader架构和刷写流程
  6. 少儿编程100讲轻松学python(四)-python如何判断是否为数字字符串
  7. 推广的euclid_欧几里德(Euclid)贴近度评价法在人类进化上的应用
  8. java对两个表进行排序_Excel工作簿中多个worksheet工作表,如何对工作表进行排序?...
  9. 简单点赞效果html,js实现点赞效果
  10. nginx 上传文件漏洞_文件上传及解析漏洞