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变量的命名有自己的特点:变量的第一个字母是用来表明变量用途。具体情况如下:

  1. 局部变量,方法参数和方法名通常都是以小写字母或者下划线开头的;
  2. 全局变量以$开头;
  3. 实例变量以@开头;
  4. 类变量以@@开头;
  5. 类名,模块名和常量以大写字母开头。

  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中的字符串、判断语句以及循环语句等。敬请继续关注!

参考资料

  1. Ruby 类的属性、变量、常量和方法定义
  2. Ruby程式語言入門
  3. Ruby数组操作的总结
  4. Ruby字符串处理函数总结列表分享
作 者:D瓜哥,http://www.diguage.com/
原文链接:http://www.diguage.com/archives/92.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。

【转】Ruby入门教程(一)的更多相关文章

  1. Ruby入门教程和技巧

    转自:http://blog.csdn.net/cqfz123/article/details/1349050   Ruby真的比Java更好? Ruby On Rails 创始人:对Java 说再见 ...

  2. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

  3. 转:几十种编程语言的快速入门教程- learnxinyminutes.com

    原文来自于:http://top.jobbole.com/15551/ 这家网站的名称是 Learn X in Y minutes,包括了几十种编程语言的快速学习入门教程.打开几种编程语言来看了一下, ...

  4. Ruby入门--Linux/Windows下的安装、代码开发及Rails实战

    Ruby入门--Linux/Windows下的安装.代码开发及Rails实战 http://www.linuxidc.com/Linux/2014-04/100242.htm Ubuntu 13.04 ...

  5. nodejs【伪】入门教程

    声明: 本文适合白的不能再白的小白 不要被标题误导,本文不会讲nodejs基础,只是本人学习流程和资料的一个整合 如果想找一大堆教程自己看,没有电梯,自己拉到文章最下方吧   一.nodejs是什么 ...

  6. TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。

    Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...

  7. laravel 中CSS 预编译语言 Sass 快速入门教程

    CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...

  8. Apache Solr入门教程(初学者之旅)

    Apache Solr入门教程(初学者之旅) 写在前面:本文涉及solr入门的各方面,建议边思考边实践,相信能帮助你对solr有个清晰全面的了解并能简单实用. 在Apache Solr初学者教程的这个 ...

  9. org-mode入门教程

    org-mode 入门教程By Z.H. Fu 切问录 www.fuzihao.org org-mode 入门教程 org-mode是Emacs提供的一个强大的编辑模式,可以用于做会议笔记以及制作各种 ...

随机推荐

  1. 【转】android Apk打包过程概述_android是如何打包apk的

    最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程.   流程概述: 1.打包资源文件,生成 ...

  2. 使用solrj操作solr索引库

    (solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ...

  3. IOS 五星评分控件

    程序中需要打分的功能,在网上找了几个,都不是很满意.下面是实现出的效果.可以点击,可以拖动. 使用方法:初始化控件. TQStarRatingView *starRatingView = [[TQSt ...

  4. HDU 3853-loop(概率dp入门)

    题意: r*c个方格,从(1,1)开始在每个方格可释放魔法(消耗能量2)以知,释放魔法后可能在原地.可能到达相邻的下面格子或右面格子,给出三者的概率 求要到达(R,C)格子,要消耗能量的期望值. 分析 ...

  5. 一幅图概括Android测试的方方面面

    一幅图概括Android测试的方方面面,来自网络: 另外的一些测试技巧 1,测试应用程序时,环境是很大的一个影响因素:系统时间,网络情况,异常关闭等 2,测试应用程序时,第三方嵌入程序也是有影响的.如 ...

  6. 接入脚本interface.php实现代码

    承接上文的WeChatCallBack 在WeChatCallBack类的成员变量中定义了各种消息都会有的字段,这些字段在init函数中赋值.同时也把解析到的XML对象作为这个类的成员变量$_post ...

  7. linux下mysql数据库的学习

    转载博客:http://freedomljtt.blog.163.com/blog/static/72294949201210145441701/ ubuntu12.04 卸载和安装mysql 卸载m ...

  8. log4net 动态设定日志文件名

    参考文章: http://blog.csdn.net/haoxiaozigang1/article/details/16343303 通过这个篇文章的方法,只能修改文件的路径,文件名并没有修改 参考文 ...

  9. LeetCode题解——Palindrome Number

    题目: 判断一个数字是不是回文数字,即最高位与最低位相同,次高位与次低位相同,... 解法: 求出数字的位数,然后依次求商和求余判断是否相等. 代码: class Solution { public: ...

  10. RPC框架motan: 通信框架netty( 1)

    服务器端编程都离不开底层的通信框架,在我们刚学习java的时候,主要接触都是Socket和ServerSocket 的阻塞编程,后来开始了解NIO,这种非阻塞的编程模式,它可以一个线程管理很多的Soc ...