一.数组 数组的创建 names = ["shiwanyin","jingshang","dapao","xishuai"] 数组对象 数组对象未确定时,用[]表示一个空数组对象。 从数组中抽取对象 names[0] print "第一个名字为:",names[0],"。\n" 将对象保存到数组中 支持多种不同对象的混合保存。 数组的大小 array.size 数组的循环 names.each do |变量| 希望循环的处理 end
15散列类 15.1复习散列 15.2散列的创建 15.2.1使用{} {键=>值} 像下面那样指定键值对,键值对之间用逗号,隔开 h1 = {"a"=>"b","c"=>"d"} p h1["a"] #=>"b" 用符号作为键时 {键:值} h2 = {a:"b",c:"d"} p h2 #=>{:a=>"b",:c=>"d"} 15.2.2使用Hash.new 用来创建新的散列的方法。 指定参数值返回 15.3 值的获取与设定 与数组一样,散列也是用[]来实现与键相对应的元素值的获取与设定的。 h = Hash.new h["R"] = "Ruby" p h["R"] #=>"Ruby" 还可以用store方法设定值,用fetch方法获取值。下面的例子的执行结果与上面的例子是一样的。 h = hash.new h.store("R","Ruby") p h.fetch("R") #=>"Ruby"、(如果散列中不存在指定的键,程序就会发生异常) 对fetch方法指定第二个参数,那么该参数值就会作为键不存在是散列的默认值。 h = Hash.new p h.fetch("N"){String.new} #=>"" 15.3.1 一次性获取所有的键值。由于散列是键值对形式的数据类型,因此获取键值的方法是分开的。 h = {"a" = "b","c" = "d"} p h.keys #=>["a","c"] p h.values #=>["b","d"] p h.to_a #=>[["a","b"],["c","d"]] 除了返回数组,使用迭代器获取散列值。
Number无需声明
字符串类 14.1字符串的创建 str1 = "字符串";str2 = '字符串'。 使用“”时可以执行用#{}括起来的Ruby式子。 这个#{}就称为内嵌表达式。 14.1.1 %Q和%q 创建包含“‘的字符串,使用%Q或者%q会比使用\" \'更简单 desc = %Q{Ruby的字符串中也可以使用’‘和”“} %Q相当于用“”创建字符串 str = %q|Ruby said, 'Hello world' %q相当于用‘’创建字符串 14.1.2 使用Here Document Here Document 是源自于Unix的shell的一种程序写法。 使用<
range类
r1=1..5 #定义范围对象r1,包括元素1,2,3,4,5r2=Range.new(1,5) #等价与1..5r3=1...5 #定义范围对象r3,包括元素2,3,4r4=Range.new(1,5,true) #等价与1...5
二。循环
1. times方法
在前面已经有提到过了,语法如下:
复制代码 代码如下:
循环次数.times do 循环次数.times { 重复执行的动作 重复执行的动作 end }
#也可以在times模块中加入变量
5.times { |i| print "This is the", i+1, " time. \n"}
# i变量是从0开始计算的
2. for 语句
复制代码 代码如下:
语法:for 变量 in 开始数值..结束数值 do 反复执行的动作end
# do是可以省略的
from = 0to = 20sum = 0for i in from..to sum += 1end
语法:for 变量 in 对象 反复执行的动作end
names = ["Windy", "Cindy", "Jack", "Hugo"]for name in names print name, " likes Ruby. \n"end
第二个语法的for语句,与java中的for each语句非常类似,for (i in list?) {...}
3. while 语句
while语句与JAVA中也是类似的
复制代码 代码如下:
语法:while 条件 do 反复执行的动作end
a = 1sum = 0while a < 10 do sum += a i += aend
4. until 语句其语法与while语句类似,只是只有条件不符合的时候,才会反复执行循环
复制代码 代码如下:
语法:until 条件 do 反复执行的动作end# do可以省略
sum = 0until sum > 50 sum += 1endprint sum
# 以上until循环可以转换成下面的while循环while !(sum > 50) sum += 1end
5. each 方法在前面已经提到过这个方法了,这里就简要记录下语法
复制代码 代码如下:
对象.each { |变量|
想要反复执行的动作
}
6. loop方法
它是一种没有结束条件的方法,只是不断进行循环处理,示例如下:
复制代码 代码如下:
loop { print "Ruby"}
三。运算符算术运算符+-*/ 取余% 平方**
比较运算符 >,=,<=,===,<=>,.eql?,equal?(区别最后两个) 前者是判断两个数值是否相同,后者是判断是否为同一个数,如果不懂可以继续追问我。