【转】Ruby入门教程(一)
1. Ruby环境搭建
在Windows下,搭建Ruby环境,比较简单的方法是在“RubyInstaller”上下载一个合适的版本(D瓜哥使用的是最新版),直接安装就可以了。
另外,吐槽两句,网上有人说Windows不适合搞Ruby开发,刚开始D瓜哥不信,昨天因为搭建Ruby on Rails的环境,Mysql数据库的驱动死活安装不成功!太折腾人了。所以,如果真的想玩Ruby,还是使用Linux系统吧。
2. Ruby的注释
和其他常见编程语言一样,Ruby也分为“单行注释”和“多行注释”。不同的是,Ruby使用的注释符号和Java、C/C++等编程语言不一样。
另外,Ruby偏好使用单行注释:
# This is a comment line
# This is a comment line
Ruby中,多行注释比较少见,D瓜哥是接触Ruby十几天后才知道多行注释的语法,之前一直在纳闷多行语法该怎么写。
=begin
This is comment.
This are two comments.
=end
上述代码中,高亮的两行代码是注释的开头和结尾,这两行的开头必须和上述代码保持一直,否则报错。经过D瓜哥的测试,开头后面可以添加注释。
3. Ruby变量
Ruby变量的命名有自己的特点:变量的第一个字母是用来表明变量用途。具体情况如下:
- 局部变量,方法参数和方法名通常都是以小写字母或者下划线开头的;
- 全局变量以$开头;
- 实例变量以@开头;
- 类变量以@@开头;
- 类名,模块名和常量以大写字母开头。
Ruby变量的命名规则是:变量名是以小写字母或者下划线开始(D瓜哥在IRB中测试,也可以使用$开头,但是使用_$开头就会报错;使用$_开头没有问题),其后由大小写英文字母,数字和下划线组成。变量名是区分大小写的,变量名的字符长度没有限制。另外,需要注意的是,给变量命名的时候,尽量遵守上面的根据变量首字母分类的约定。D瓜哥认为:变量的命名,可以反应出一个程序猿的代码素养。
mystr = "Are you ready?" #局部变量 class Person #类名
@@year = 2013 #类变量 def initialize(name) #构造函数
@name = name #示例变量
end def name #方法名
@name
end def name=(name)
@name = name
end
end puts mystr
4. 数组
废话少说,直接上代码。
##1. 数组定义
arr1 = []
arr2 = Array.new
arr3 = ['1', '2', '3'] ##2. 输出
puts "Output: \n"
print arr3, "\n" #输出: ['1', '2', '3']
puts arr3[0] #输出:1
print arr3.join(",") #输出:1,2,3 ##3. 访问数组元素
puts "\nArray Element\n"
p arr3[0]
p arr3[-1] #输出最后一个数据
p arr3.first
p arr3.last
p arr3.max
p arr3.min
p arr3.length
p arr3.size ##4. 数组操作
puts "\nArray method\n"
p arr3[4] = '5' #此时arr3[3]默认为nil
p arr3.delete_at(3) #删除指定下标的元素
p arr3[2] = ["3a", "3b", "3c"]
p arr3.delete(["3a", "3b", "3c"])
p arr3.push('6')
p arr3.insert(3, 'b')
p arr3<<"f"<<2 #从左到右依次加入元素
p arr3.pop #删除尾元素
p arr3.shift #删除首元素
p arr3.clear ##5. 数组运算
p "Array Operator"
aaa = ["aa", 4, 5, "bb"]
bbb = [4, 1, 3, 2, 5]
p aaa + bbb #输出:["aa", 4, 5, "bb", 4, 1, 3, 2, 5]
p aaa * 2 #输出:["aa", 4, 5, "bb", "aa", 4, 5, "bb"]
p bbb - aaa #输出:[1, 3, 2]
p aaa | bbb #输出:["aa", 4, 5, "bb", 1, 3, 2]
p aaa & bbb #输出:[4, 5]
p bbb.sort #输出:[1, 2, 3, 4, 5]
p aaa.reverse #输出:["bb", 5, 4, "aa"]
p bbb.sort.reverse
由于Ruby的迭代器及其强大,在Ruby编程中,利用数组的这些函数再加上迭代器可以写出非常“炫”的代码!
这一节,D瓜哥介绍了Ruby中的注释、变量声明以及数组操作。下一节,D瓜哥将介绍Ruby中的字符串、判断语句以及循环语句等。敬请继续关注!
参考资料
原文链接:http://www.diguage.com/archives/92.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
【转】Ruby入门教程(一)的更多相关文章
- Ruby入门教程和技巧
转自:http://blog.csdn.net/cqfz123/article/details/1349050 Ruby真的比Java更好? Ruby On Rails 创始人:对Java 说再见 ...
- 《Ruby语言入门教程v1.0》学习笔记-01
<Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...
- 转:几十种编程语言的快速入门教程- learnxinyminutes.com
原文来自于:http://top.jobbole.com/15551/ 这家网站的名称是 Learn X in Y minutes,包括了几十种编程语言的快速学习入门教程.打开几种编程语言来看了一下, ...
- Ruby入门--Linux/Windows下的安装、代码开发及Rails实战
Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...
- nodejs【伪】入门教程
声明: 本文适合白的不能再白的小白 不要被标题误导,本文不会讲nodejs基础,只是本人学习流程和资料的一个整合 如果想找一大堆教程自己看,没有电梯,自己拉到文章最下方吧 一.nodejs是什么 ...
- TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...
- laravel 中CSS 预编译语言 Sass 快速入门教程
CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...
- Apache Solr入门教程(初学者之旅)
Apache Solr入门教程(初学者之旅) 写在前面:本文涉及solr入门的各方面,建议边思考边实践,相信能帮助你对solr有个清晰全面的了解并能简单实用. 在Apache Solr初学者教程的这个 ...
- org-mode入门教程
org-mode 入门教程By Z.H. Fu 切问录 www.fuzihao.org org-mode 入门教程 org-mode是Emacs提供的一个强大的编辑模式,可以用于做会议笔记以及制作各种 ...
随机推荐
- c& c++ enum
1.为什么要用enum 写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等. ...
- iOS - NSLog、UncaughtException日志保存到文件
转:http://blog.csdn.net/marujunyy/article/details/12005767 对于真机,日志没法保存,不好分析问题.所以有必要将日志保存到应用的Docunment ...
- Python抓取单个网页中所有的PDF文档
Github博文地址,此处更新可能不是很及时. 1.背景 最近发现算法以及数据结构落下了不少(其实还是大学没怎么好好学,囧rz),考虑到最近的项目结构越来越复杂了,用它来练练思路,就打算复习下数据结构 ...
- [转] AE之分级颜色专题图渲染
原文 AE之分级颜色专题图渲染 参考代码1 private void 分级渲染ToolStripMenuItem_Click(object sender, EventArgs e) { //值分级 I ...
- Binary Tree Level Order Traversal java实现
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- 有效处理java异常的三个原则
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? ...
- Microsoft-pubs(图书馆管理系统)-数据库设计
ylbtech-DatabaseDesgin:微软提供-pubs(图书馆管理系统)-数据库设计 1.A,数据库关系图 1.B,数据库设计脚本 -- ======================== ...
- <译>Selenium Python Bindings 3 - Navigating
当你想要通过webdriver导航到一个链接,正常的方式点是通过调用get方法: driver.get("http://www.google.com") Interacting w ...
- 前言:关于nagios监控
前言,关于nagios监控. 这段时间一直在做关于nagios监控,不停的做实验,从而也忽略了书写这方面,今天写一份安装文档花了四个多小时,看来写文档也是一件很麻烦的事情,不过,做过的事情还是需要留下 ...
- 利用flashback query 恢复表数据
flashback query可以查询过去某个时间点对象的状态,从而可以利用此来进行恢复数据 1 准备测试数据 用普通用户创建一个表,表中插入部分数据: SQL> show user USER ...