最近在学习Programming Ruby,做点读书笔记来记录下自己的成长也是不错的。当然更希望的是各位大牛能指出本人的不足,在这里先谢谢大家了。

第一章     入门

讲的是如何安装Ruby,在Ruby的官方网站上有很详细的安装指南,无论你是Liunx,Windows还是Mac,总有办法适合你。

第二章     Ruby.new

作者在这章给大家介绍了下Ruby的一些基本特性。摘录如下:

2.1 Ruby是一门面向对象语言

在Ruby中,通过调用构造函数(constructor)来创建对象,这是一种与类相关联的特殊方法。标准的构造函数被称为new。

    Song1 = Song.new(“Ruby Tuesday”)

通过构造函数,可以发现Ruby和大多数别的语言之间的一个很大的差别。例如在Java中,是通过调用另外一个函数来得到某些成员数据的绝对值,并把结果传回数据本身,Java中求绝对值可以这么写:

    number = Math.abs(number);

而在Ruby中,确定绝对值的能力内建在数字中——处理细节在内部实现中。只要发送abs消息到一个数字对象,让它去得到绝对值即可。

    number = number.abs

个人认为就是因为这种特性,作者才会认为Ruby是真正的面向对象语言。

2.2 Ruby的一些基本知识

方法(method)用关键字def定义,后面跟着方法名称和在括号中的方法参数,Ruby没有使用话括号来界定复杂的语句和定义的程序体。可以使用end结束这个程序体。

最常用的创建字符串对象的途径可能是使用字符串字面量(literals),即一组单引号或双引号之间的字符序列。

Ruby对单引号处理得很少。除了极少的一些例外,键入到字符串字面量的内容就构成了这个字符串的值。

Ruby对双引号字符串有更多的处理。首先寻找以反斜线开始的序列,并用二进制值替换它们。其中最常见的是\n,它会被回车换行符替换掉。其次是字符串内插(expression interpolation),#{表达式}序列会被“表达式”的值替换。

Ruby方法返回的值,是最后一个被求值的表达式的值,所以有时候可以省略return语句。

Ruby的命名惯例:

    局部变量、方法参数和方法名称都必须以小写字母或下画线开始。

    全局变量以$为前缀,实例变量以@为前缀,类变量以@@为前缀。

    类名称、模块名称和常量都必须以一个大写字母开始。

    包含多个单词的实例变量名称在词与词之间使用下画线连接,包含多个单词的类变量名称使用混合大小写(每个单词首字母大写),方法名称可以?、!和=字符结束(不同的字符代表的意义不一样)。

2.3 数组和散列表

使用数组字面量(array literal)——即方括号之间放一组元素——可以创建和初始化新的数组对象。Ruby数组的索引从零开始。

Ruby中用nil表示没有任何东西的对象,有点类似Java里面的null。但是要注意,在Ruby中,nil是一个对象。

散列表字面量(hash literal)使用花括号。这个字面量必须为每一项提供两个对象:一个键(key)和一个值(value)。

2.4 控制结构

Ruby具有常见的控制结构,如if语句和while循环。另外Ruby中这些语句的程序体没有花括号,使用end关键字来表明程序体的结束。

如果if或while语句的程序体只是一个表达式,Ruby的语句修饰符(statement modifiers)是一种有用的快捷方式。只要写出表达式,后面跟着if或while和条件。这点跟Perl类似。

2.5 正则表达式

正则表达式只是一种指定字符模式的方法,这个字符模式会在字符串中进行匹配。

在Ruby中,正则表达式是对象并且可以当作对象来操作。

=~匹配操作符可以用正则表达式来匹配字符串。如果在字符串中发现了模式,=~返回模式的开始位置;否则返回nil。因此可以在if或while语句中把正则表达式当作条件使用。

2.6 Block和迭代器

Block是一种可以和方法调用相关联的代码块。可以用它实现回调,传递一组代码,以及实现迭代器。

Block只是在花括号或者do_end之间的一组代码。

一旦创建了Block,就可以与方法的调用相关联。把Block的开始放在含有方法调用的源代码行的结尾处,就可以实现关联。

使用yield语句,方法可以一次或多次地调用(invoke)相关联的Block。

可以提供参数给对yield的调用:参数会传递到Block中。在Block中,竖线(|)之间给出参数名来接受这些参数。

在Ruby的库中大量使用了Block来实现迭代器:迭代器是从某种容器(collection)如数组中连续返回元素的方法。

2.7 读/写文件

Ruby有一个完备的I/O库。

puts输出它的参数,并在每个参数后面添加回车换行符。

print也输出它的参数,但没有添加回车换行符。

printf,在格式化字符串的控制下打印参数。

gets,从程序的标准输入流读取下一行。

转载于:https://www.cnblogs.com/PandaBamboo/archive/2012/08/22/2651368.html

Programming Ruby学习笔记一相关推荐

  1. Programming C# 学习笔记(二) 出发:“Hello World”

    小序:      准备写这章的学习笔记了,啊,Hello World!多么亲切的语句,呵呵,当初学C语言的第一个程序就是输出它, 还记得费了好大劲终于把它输出来时候的那种兴奋感觉,真是让我怀念哦!(然 ...

  2. Ruby学习笔记_索引贴

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

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

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

  4. qt5python gui cookbook_Python GUI Programming Cookbook学习笔记

    学习笔记 Chapter2 Layout Management 第一节:Arranging several labels within a label frame widget 把代码加进上一篇文章中 ...

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

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

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

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

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

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

  8. Ruby 学习笔记3

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

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

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

最新文章

  1. python去除字符串中的单词_从字符串中删除单词列表
  2. AVFrame中data与linesize关系
  3. iOS开发的库的列表,不完全是开源库
  4. 返回一个二维整数数组中最大子数组的和
  5. jquery父元素和子元素点击事件传递问题_不可把父元素的事件传递给子元素_事件无限循环传递...
  6. 代码实现两个数交换方法
  7. (JAVA)Object类之String类
  8. JEECG 3.7.1 非Maven版本源码下载,企业级JAVA快速开发平台
  9. Docker入门与应用系列(二)镜像管理
  10. bzoj2286 [Sdoi2011]消耗战 单调栈+lca
  11. 卡尔曼滤波的基本原理
  12. python竖着输出编码_在Python中使用管道标准输出时设置正确的编码
  13. Linux下elasticsearch的安装与使用
  14. MyBatis:CRUD操作及配置解析
  15. 大数据招聘信息可视化
  16. QT中QSet容器报错: error: C2678: 二进制“==”: 没有找到接受“const Key类型的左操作数的运算符。
  17. linux操作系下RAR的使用
  18. 时间触发以太网TTE
  19. Android项目用到的or比较好的资料
  20. 消除span之间的空隙

热门文章

  1. ROS学习笔记3(创建一个ROS Package)
  2. centos 命令行执行多个命令_命令行如何执行jar包里面的方法
  3. 编写一个2分10秒的倒计时脚本
  4. 印尼商品期货交易监管局考虑对加密货币交易征税
  5. StarkWare发布零知识证明工具链
  6. ParaFi Capital资产管理规模超1亿美元,至少投资22家公司或协议
  7. SAP License:第三只眼看财务-现金流量表编制
  8. scrm电商后台管理、公司管理、店铺管理、特卖活动、营销活动、订单管理、优惠券管理、商品管理、会员管理、标签管理、会员卡、签到配置、积分、拼团、砍价、快递配置、短信配置、充值、运营活动
  9. Axure智慧水务移动端原型、智慧泵房、水厂监控、营收管理、DMA漏损、维护管理、GIS地图、水质监控、电商系统
  10. Oracle误操作--被提交后的数据回退(闪回)