首页 > 代码库 > ruby简单的基础

ruby简单的基础

好久没写记录东西了,最近决定记录写ruby方面的东西,大家一起学习。

ruby 基础语法


1、注释



单行注释 #
#开始到行末是单行注释


多行注释 
=begin 


=end
多行注释以=begin开始 以=end结束,
=begin和=end前不能有其他字符,包括空格。
一般=begin 和 =end独占一行,这样看起来比较清晰。


Ruby中用;来表示一个语句结束。如果一行有多个语句,每个语句可以用;隔开,最后一个;可以省略。


换行表示一行结束,如果语句太长的话,我们可以用\连接下一行,表示这行还没有结束。

#puts "this is a line01"
puts "hello,world!"

=begin
puts "this is a line02"
puts "this is a line03"
=end
puts "this is a line04"


puts "this is a mutiple"  " line..."


=begin puts "hello"
=end 
puts "dear.."


2、分隔符



3、关键字

模块定义:module
类定义:class
方法定义:def
条件语句:if,then,else,elsif,case,when,unless
循环语句:for,in,while,until,next,break,do
逻辑判断:not,and,or
逻辑值:true,false
空值:nil
异常:rescue,ensure
块的起止:begin,end
嵌入模块:BEGIN,END
方法返回:return
别名:alias


4、运算符

和其他语言差距不大,不多说啦。
逻辑或 or
逻辑与 and
没有 i++ ;这样的东西,你因该 i += 1;


5、标示名

ruby的标示名区分大小写,标示符名字的第一个字符表明了它的用法。
变量首字母后可以跟数字、字母、下划线任意组合,但是@后面不可以直接跟数字。


局部变量、方法参数、方法名字 应该用一个小写字母或者下划线开头
全局变量 应该用美元符$作为开头
实例变量 应该用@开头
类变量 应该用@@开头
类名、模块名、常量 应该用大写字母开头


6、数据类型

ruby的数据类型有:数字、字符串、数组、哈希表、区间、正则


数字
整数:1,110
浮点:1.0,110.0,11.1e4,浮点小数点后必须跟数字,11.e5是错误的


字符串
‘’或“” 之间的字符


数组
数组的每个元素可以是不同的类型。


区间
1..6 表示 1,2,3,4,5,6;左闭右闭区间 []
1...6 表示 1,2,3,4,5; 左闭右开区间 [)


7、条件运算符





8、条件判断



单行if语句
1、if 条件 then 语句1;语句2;语句3;end
2、(语句1;语句2;语句3; ...) if 条件


多行if语句


if 条件1
语句1;
elsif 条件2
语句2;
end

unless 条件 和 if not 条件一样,不习惯这种写法。




case 对象
when 可能性1
语句1
when 可能性2
语句2
else
语句3
end


和我们熟悉的switch 类似


9、循环

单行while
(语句1;语句2;...) while 条件


多行while
while 条件
语句;
end


for 变量 in 对象(数组,区间,集合)
语句1;
语句2;
end
和oc中的for in 类似


在循环体中,如果遇到:
break,跳出当层循环
next,忽略本次循环的剩余部分,开始下一次循环,和continue类似
redo,重新开始循环,但是还是从本次开始
retry,从头开始这个循环体




10、times,upto,downto,each,step



times,upto,downto 是Integer的方法
num.times{

}
或者
num.times do
end
重复一个代码块 num次


num.upto(limit) {|i| block}
从num到limit,迭代block,i >= num, i <=limit


num.downto(limit) {|i| block}
从num到limit,迭代block,i <= num, i >=limit




step是区间的方法


each是数组的方法
数组.each {|i| block}
遍历一边对象中的元素
5.times {
  puts "i love you.."
}
5.times do 
  puts "i love you too.."
end

1.upto(5){|i| puts i}

5.downto(2) do 
  |i| puts i
end

(1..6).each { |i| puts i}

1.step(10,3) { |i| puts i}
puts "...."
10.step(1,3) { |i| puts i}