1、Ruby语言基础教程,内容介绍,Ruby基础知识 Ruby条件判断、循环 Ruby文件与目录操作,2,3,一、Ruby基础知识,1、关于Ruby Ruby是脚本语言 Ruby是面向对象语言 Ruby是跨平台语言 Ruby是开放源码软件 2、Ruby入门书籍推荐Ruby.Programming向Ruby之父学程序设计(第2版)(日)高桥征义,(日)后藤裕藏 著(日)松本行弘 审订博硕文化 译,4,一、Ruby基础知识,常用Ruby开发工具 任何文本编辑器都可以用来编写Ruby代码,只要文件以“.rb”结尾保存即可。 ScITE Eclipse (using RDT Plugin) NetBean
2、s 等,一、Ruby基础知识,Ruby的第一个程序,5,6,一、Ruby基础知识-数字,Ruby中包含了5个用来表示数字的内建类,此外标准库还包含3个数值类, Ruby中所有数字对象都是Numeric类的实例,所有整数都是Integer的实例, 如果一个整数值能容纳在一个31个二进制位里,那么它是Fixnum类的实例, 否则它就是Bignum类的实例, Bignum对象用来表示任意大小的整数,如 果一个操作的操作数是Fixnum对象,但其结果超过了Fixnum的范围,那么 该结果将会自动的转换成Bignum对象,反之亦成立。Ruby使用Float类来 近似的表示实数,该类会利用本地平台的浮点数
3、表示形式。Complex类表示 复数,BigDecimal类表示具有任意精度的实数,使用的是十进制表示法而不 是二进制,Rational表示有理数,即两整数相除后得到的数,7,一、Ruby基础知识-算术操作,所有的Ruby数值类型定义了+、-、*和/操作。当一个表达式含有多个指数 操作符时,他们按照从右到左顺序执行(4*3*3与4*9相同,与64*3不同),8,一、Ruby基础知识-字符串操作,Ruby使用String类的对象表示文本。字符串是可变的对象,而且String类 定义了强大的方法集合,用于完成提取子字符串、插入和删除文本、搜 索及替换等操作。关于取值替换见数组部分,9,一、Ruby
4、基础知识-数组,一个数组就是一系列的值,可以通过这些值在序列中的位置或索引来访问他们。 数组第一个值的索引是0,size和length可以返回一个数组元素的个数,数组中 最后一个元素的索引是size1,负索引将从数组末尾开始计数,1表示最后 一个元素,以此类推。如果你试图读取超出数组范围的元素,Ruby会返回nil。,Ruby数组是无类型且可变的,数组里的元素不必同属于一个类型,而且它们 随时改变,数组的大小也是可以随时改变的,你可以向数组添加元素,数组 会按需变长,用、Array.new、%w、to_a、split等方法可以建立一个数组 Num=1,2,3,4,5 A =Array.new
5、= A=Array.new (5) =nil,nil,nil,nil.nil A=Array.new(5,0) =0,0,0,0,0 Lang =%w(牛 虎 羊) =“牛”,”虎 ”,”羊” 元素是字符串且不含空格的时候可以这样写,”()”可以换成”|”等,以不与字符串里的会用到的符号重复为原则,一、Ruby基础知识-数组,10,Color_table = “black” =”#000000”,”white”=”#FFFFFF” p Color_table.to_a =“black” , =”#000000”,“white”,”#FFFFFF”,Hash调用to_a返回的是数组的数组,键与键
6、值组成数组,,str =“today is monday” p str.split =“today” ,”is”,”monday”,以空格切割字符串,还可以是其它字符 Str1 = “aaaa&bbbb&CCCC” P str1.split(“&”) = “aaaa”,”bbbb”,”CCCC”,结合数组元素的算术方法:|和+ Num = 1,2,3 Even =3,4,5 Num +Even = 1,2,3,3,4,5 Num | Even = 1,2,3,4,5,一、Ruby基础知识-数组,A.unshift(item):在数组A的前方加入元素item a =1,2,3,4,5 a.uns
7、hift(0) = 0,1,2,3,4,5 A0,1,2,3,4,5,6 a =0,1,2,3,4,5,6,0 a.concat(b)与a+b: b =8,9 a+b =0,1,2,3,4,5,6,0,8,9 a.concat(b) =0,1,2,3,4,5,6,0,8,9,11,一、Ruby基础知识-数组,A.compact与A.compact!:从数组元素中删除nil元素,compact会建立新数组,compact!会改变原来数组, compact!在删除nil元素后会返回a,但在什么都没有删除的时候返回nil A.delete(item):删除数组中得元素item A.delete_at
8、(n):删除数组中索引是n的元素 A.delete_if|item|对数组元素进行测试 ,如果结果为真就删除item A.slice!(n),A.slice!(nm), A.slice!(n,len)除去数组中指定部分的值 等,12,一、Ruby基础知识-哈希,Hash和数组一样,也可以作为对象集合的对象,数组用索引来访问元素,而hash是通过“键”来访问。 Person =Hash.new Person“name” =“Kael” Person.store(“age”,”30) Puts Person“name” Puts Person.fetch(“name”) Person“addres
9、s” =“路” Book =“name”=”C#”,”isbn” =”123344545” h2 =hash.new(“”) h1 =hash.new puts h1“not_key” = nil puts h2“not_key” = “”,13,Hash哈希类,14,一、Ruby基础知识-哈希,在建立hash指定默认值 H1 =Hash.new(1) h1“a”=5 puts H1“a” =5 puts H1“b” =1 puts H1“c” =1 指定用来产生默认值的区块 h=Hash.new|hash,key| Hashkey =key.upcase h“a”=“” puts h“x” =“X”,15,二、Ruby条件判断、循环,16,三、Ruby目录与文件,17,