好久没写记录东西了,近期决定记录写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、keyword
模块定义: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}