条件决断,在编程语言中都设有,而Ruby中的条件剖断和Java中近乎,当然依旧存在多少异样
Page 3 概述
Page 3 概述
Ruby中规范推断的尺码:
¨ 解释执行:Python,Ruby,交互性很好; ¨ 编译执行:Pascal, C,速度较快。 n 本地执行,如C,C++; n 虚拟机执行,如Java, C#。
¨ 动态语言,如JavaScript,Ruby; ¨ 静态语言,如C++,Java。 |
¨ 解释执行:Python,Ruby,交互性很好; ¨ 编译执行:Pascal, C,速度较快。 n 本地执行,如C,C++; n 虚拟机执行,如Java, C#。
¨ 动态语言,如JavaScript,Ruby; ¨ 静态语言,如C++,Java。 |
1) 能够运用
==,<,>等相比较运算来作为基准,比较运算能够回来true和false,那和java中的语法是类似的
2)
一些另外的点子也得以用来作为度量规范,比方,empty?方法,为空则重临true,否则再次来到false
语言 ¨ 语法 关键字 ¨ 语义 ¨ 语用
|
语言 ¨ 语法 关键字 ¨ 语义 ¨ 语用
|
3)
有个别措施固然不会再次来到true或false,不过也能作为基准判断的口径,他们回到的对象,要么是false或nil,要么是意义的指标,则可依附如下表格判定:
松本行弘(马茨) 壹玖玖肆
比较详细,Ruby简明教程之推断语句介绍。松本行弘(马茨) 1994
TRUE | FALSE |
false和nil以外的对象 | false与nil |
Ruby [`ru:bi](红宝石)
Ruby [`ru:bi](红宝石)
p /Ruby/ =~ “Ruby” 重返0,则在条件决断中得以回到true
Ruby中也能够动用常用的逻辑运算符,&&,||,!,其象征的意思与JAVA中的意义是如出一辙的。
Ruby中的条件剖断语句:
Ruby 吸取了 perl 的正则表达式, python 的简单性可读性,smalltalk 的纯面向对象语法和单继承,LISP 的无穷嵌套的语法,Java的线程… |
Ruby 吸取了 perl 的正则表达式, python 的简单性可读性,smalltalk 的纯面向对象语法和单继承,LISP 的无穷嵌套的语法,Java的线程… |
1. if 语句
复制代码 代码如下:
Page 14 上手
Page 14 上手
=begin
语法:
if 条件1 then
语句1
elsif 条件2 then
语句2
elsif 条件3 then
语句3
else
语句4
end
=end
XP
XP
a = 10
b = 20
if a>b then
print “a is smaller than b.”
elsif a == b then
print “a equals b.”
else
print “a is larger than b.”
end
Cmd
Cmd
2. unless 语句,其恰好与if语句相反,当条件不切合时,则施行相应语句
C:\Documents and Settings\Administrator>ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] |
C:\Documents and Settings\Administrator>ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] |
复制代码 代码如下:
=begin
语法:
unless 条件 then
语句
end
=end
先是种方式:ruby命令
率先种办法:ruby命令
a = 10
b = 20
unless a>b then
print “a is smaller than b.”
end
C:\Documents and Settings\Administrator>ruby -e ‘print "hello world"’ hello world |
C:\Documents and Settings\Administrator>ruby -e ‘print "hello world"’ hello world |
# -> “a is smaller than b” will be printed out.
3. case 语句 当同二个对象,要与八个值实行相比较时,能够应用case语句,其成效与JAVA中的switch语句看似
ruby 运行ruby;
ruby 运行ruby;
复制代码 代码如下:
-e 实践前边的ruby脚本程序;
-e 推行前边的ruby脚本程序;
=begin
语法:
case 想要相比较的靶子
when 值1 then
语句1
when 值2 then
美高梅开户网址, 语句2
when 值3 then
语句3
else
语句4
end
# then是足以简轻巧单的
=end
print 打字与印刷展现;
print 打字与印刷突显;
array = [“aa”, 1, nil]
item = array[0]
case item
when String
puts “item is a String.”
when Numeric
puts “item is a Numeric.”
else
puts “item is a something”
end
#这里相比较的是目的的品类,实际不是指标的值
hello,world 要出口的源委。
hello,world 要出口的剧情。
PS: if修饰符和unless修饰符能够写在实行语句前边,譬喻,print “a is larger
than b.” if a>b,所以ruby是很灵敏的。
“===”符号的意思,其在区别的场子能够代表分化的符号,若左侧是数字或字符串时,则和”==”是同样的;在正则表达式的场合下则一定于”=~”;在类的场面下,剖断”===”侧边的靶子是还是不是是类的实例
其次种情势:irb交互施行
其次种办法:irb交互实行
复制代码 代码如下:
C:\Documents and Settings\Administrator>irb irb(main):001:0> print "hello world" hello world=> nil irb(main):002:0> exit |
C:\Documents and Settings\Administrator>irb irb(main):001:0> print "hello world" hello world=> nil irb(main):002:0> exit |
p ((1..3) === 2) #-> true
p /zz/ === “zyzzy” #-> 2
p String === “xyzzy” # -> true
#在case表达与if语句间转变,用===,符号右边是case的值,侧边为case的变量
case A
when value1 if value1 === A
语句1 语句1
when value2 elsif value2 === A
语句2 语句2
else else
语句3 语句3
end end
exit: 退出irb交互式情形
exit: 退出irb交互式蒙受
您恐怕感兴趣的文章:
- Ruby简明教程之循环语句介绍
其两种办法:创立ruby脚本
其三种格局:创造ruby脚本
C:\Documents and Settings\Administrator>copy con helloworld.rb print "hello world" print "3*7=",3*7 ^Z 已复制 1 个文件。
C:\Documents and Settings\Administrator>helloworld.rb hello world3*7=21 |
C:\Documents and Settings\Administrator>copy con helloworld.rb print "hello world" print "3*7=",3*7 ^Z 已复制 1 个文件。
C:\Documents and Settings\Administrator>helloworld.rb hello world3*7=21 |
Page 17 IDE
Page 17 IDE
¨ Eclipse + RDT(Ruby Development Tools)
¨ Eclipse + RDT(Ruby Development Tools)
¨ FreeRIDE+SciTE
¨ FreeRIDE+SciTE
1.在SciTE编辑Ruby代码;
1.在SciTE编辑Ruby代码;
2.保存为 .rb文件;
2.保存为 .rb文件;
3.菜单栏,工具->运行照旧F5;
3.菜单栏,工具->运维依然F5;
Page 18 语法
Page 18 语法
1. 注释
1. 注释
单行注释 # 多行注释 =begin =end
单行注释 # 多行注释 =begin =end
Ruby的内嵌文书档案(PRADOdoc)注释,用ri命令从源文件中爆发文书档案。
Ruby的内嵌文书档案(Highlanderdoc)注释,用ri命令从源文件中爆发文书档案。
奇骏doc内嵌在ruby代码之中的,能够转变为html文书档案。
CR-Vdoc内嵌在ruby代码之中的,能够转移为html文书档案。
ri命令,用来查阅函数表明、类表明。函数表明、类表达应该放置在=begin和=end之中。注意:“=begin”一定要写在行首,也正是说,这一行前几个字符是“=begin”,此前不容许有空格。
ri命令,用来查阅函数表明、类表达。函数表明、类表明应该放置在=begin和=end之中。注意:“=begin”一定要写在行首,也便是说,这一行前四个字符是“=begin”,之前不容许有空格。
2. 分行
2. 分行
用分号;表示语句甘休。
用分号;表示语句停止。
一行三个语句,用分号隔开分离,最终七个言语,分号能够省略,换行符表示一行截止。
一行四个语句,用分号隔断,最后叁个口舌,分号能够简单,换行符表示一行结束。
语句太长,能够在行末用符号 \ ,表示续行。
语句太长,能够在行末用符号 \ ,表示续行。
3. 分隔符
3. 分隔符
名称 |
符号 |
用途 |
分号 |
; |
用来分隔一行中的多个语句 |
圆括号 |
( ) |
提高优先级;定义方法时容纳参数列表 |
空格 |
|
分隔字符;在可省略()的地方,代替() |
逗号 |
, |
隔开多个参数 |
点 |
. |
将对象与它的方法隔开 |
紧连的两个冒号 |
:: |
域作用符,将模块(类)与它的常量隔开 |
名称 |
符号 |
用途 |
分号 |
; |
用来分隔一行中的多个语句 |
圆括号 |
( ) |
提高优先级;定义方法时容纳参数列表 |
空格 |
|
分隔字符;在可省略()的地方,代替() |
逗号 |
, |
隔开多个参数 |
点 |
. |
将对象与它的方法隔开 |
紧连的两个冒号 |
:: |
域作用符,将模块(类)与它的常量隔开 |
4. 关键字
4. 关键字
Ruby中的关键字如下:
Ruby中的关键字如下:
模块定义:
模块定义:
module
module
特别管理:
相当管理:
rescue,ensure
rescue,ensure
类定义:
类定义:
class
class
目的援用:
指标引用:
super,self
super,self
艺术定义:
方法定义:
def,undef
def,undef
块的开头:
块的开端:
begin/end
begin/end
自己评论项目:
检查项目:
defined?
defined?
放到模块:
松开模块:
BEGIN,END
BEGIN,END
逻辑值和空值:
逻辑值和空值:
true,false,nil
true,false,nil
文件有关:
文本有关:
__FILE__,__LINE__
__FILE__,__LINE__
逻辑剖断:
逻辑判别:
not,and,or
not,and,or
主意重临:
艺术再次来到:
return
return
规格语句:
基准语句:
if,then,else,elsif,case,when,unless
if,then,else,elsif,case,when,unless
别名:
别名:
alias
alias
循环语句:
循环语句:
for,in,while,until,next,break,do,redo,retry,yield
for,in,while,until,next,break,do,redo,retry,yield
BEGIN模块相当于C语言中的宏,END模块用来作一些说尽责业。有了
BEGIN模块相当于C语言中的宏,END模块用来作一些了结职业。有了
require,include,应该收回BEGIN和END的语法定义。
require,include,应该打消BEGIN和END的语法定义。
5. 运算符
5. 运算符
6. 标识名:
6. 标识名:
常量,变量,方法,类和模块;
常量,变量,方法,类和模块;
大大小小写敏感;
大小写敏感;
标记名第三个字符评释那几个名字的用法。
标记名第一个字符声明这些名字的用法。
局部变量、方法参数和方法名称 |
以小写字母开头或者下划线开头; |
类名、模块名和常量 |
用大写字母开头。 |
全局变量 |
以美元符为前缀$; |
实例变量 |
以@开头; |
类变量 |
用@@开头; |
局部变量、方法参数和方法名称 |
以小写字母开头或者下划线开头; |
类名、模块名和常量 |
用大写字母开头。 |
全局变量 |
以美元符为前缀$; |
实例变量 |
以@开头; |
类变量 |
用@@开头; |
词首字母前边能够是字母、数字和下划线的自便组合;
词首字母后边能够是字母、数字和下划线的自由组合;
@后边不得以一向跟数字。
@前面不得以一贯跟数字。
Ruby程序代码用7位ACSII码来代表,通过言语增添来支撑
EUC,SJIS或UTF-8等8位编码系统。Ruby2.0版本将扶助拾11个人的Unicode编码。
Ruby程序代码用7位ACSII码来表示,通过言语扩充来支撑
EUC,SJIS或UTF-8等8位编码系统。Ruby2.0版本将援助16个人的Unicode编码。
7. 类库
7. 类库
能够直接利用:
能够直接选择:
i) 关键字;
i) 关键字;
ii) require也许include包蕴的类库中的类、方法;
ii) require只怕include包罗的类库中的类、方法;
iii)从父类中继承获得的不二等秘书技。
iii)从父类中接二连三猎取的法子。
puts |
每个参数后自动换行 |
|
不自动换行,换行用”\n” |
printf |
按格式输出,不自动换行 |
gets |
从键盘或文件中读入数据 |
puts |
每个参数后自动换行 |
|
不自动换行,换行用”\n” |
printf |
按格式输出,不自动换行 |
gets |
从键盘或文件中读入数据 |
C:\Documents and Settings\Administrator>ruby -e ‘puts "hello","world"’ hello world |
C:\Documents and Settings\Administrator>ruby -e ‘puts "hello","world"’ hello world |
C:\Documents and Settings\Administrator>ruby -e ‘printf "number:%f",3.2’ number:3.200000 |
C:\Documents and Settings\Administrator>ruby -e ‘printf "number:%f",3.2’ number:3.200000 |
瞩目:printf的参数之间用逗号隔断。
只顾:printf的参数之间用逗号隔开分离。
C:\Documents and Settings\Administrator>ruby -e ‘ printf "number:%4.3f,string %s ",1.5,"hello world"’ number:1.500,string hello world |
C:\Documents and Settings\Administrator>ruby -e ‘ printf "number:%4.3f,string %s ",1.5,"hello world"’ number:1.500,string hello world |
8. 数据类型
8. 数据类型
类型
类型
分类
分类
证实及示范
表达及示范
数字
数字
整数型
整数型
0 八进制,
0 八进制,
0x 十六进制,0b 二进制
0x 十六进制,0b 二进制
浮点型
浮点型
字符串
字符串
单引号 ‘’
单引号 ‘’
双引号 “”
双引号 “”
数组
数组
从0开首,每一个成分得以差别品种
从0开端,各样成分得以差异种类
例 [2.4,”thank you”,[a,b,c],78]
例 [2.4,”thank you”,[a,b,c],78]
区间
区间
1..5
1..5
1,2,3,4,5
1,2,3,4,5
1…5
1…5
1,2,3,4
1,2,3,4
正则表明式
正则表明式
9. 赋值运算
9. 赋值运算
交流变量a,b的值:
交流变量a,b的值:
a,b=b,a;
a,b=b,a;
留心括号:
小心括号:
a = (b = 1 + 2) + 3 #a=6 ,b=3
a = (b = 1 + 2) + 3 #a=6 ,b=3
逗号,从左往右运算,分别赋给a,b,c
逗号,从左往右运算,分别赋给a,b,c
x = 0 #x=0
x = 0 #x=0
a,b,c = x, (x+1), (x+2) #a=0 ,b=1,c=2
a,b,c = x, (x+1), (x+2) #a=0 ,b=1,c=2
10. 基准运算
10. 法则运算
== |
等于 |
!= |
不等于 |
eql? |
比较两个对象的值、类型是否相等 |
equal? |
比较两个对象在内存中地址是否相同 |
< |
小于 |
> |
大于 |
<= |
小于等于 |
>= |
大于等于 |
=~ |
匹配正则表达式 |
!~ |
断言不匹配正则表达式 |
=== |
右边的对象在左边区间内 puts(0..9)===3.14 #true puts(‘a’..’f’)===’c’ # true |
<=> |
比较两个对象大小,大于1,等于0,小于-1. |
== |
等于 |
!= |
不等于 |
eql? |
比较两个对象的值、类型是否相等 |
equal? |
比较两个对象在内存中地址是否相同 |
< |
小于 |
> |
大于 |
<= |
小于等于 |
>= |
大于等于 |
=~ |
匹配正则表达式 |
!~ |
断言不匹配正则表达式 |
=== |
右边的对象在左边区间内 puts(0..9)===3.14 #true puts(‘a’..’f’)===’c’ # true |
<=> |
比较两个对象大小,大于1,等于0,小于-1. |
Ruby里,nil和false为假,别的都为真。
Ruby里,nil和false为假,其余都为真。
11. 决断语句
11. 看清语句
- 单行if语句
- 单行if语句
if then end
if then end
( ) if
( ) if
- 多行if语句
- 多行if语句
if elsif else end
if elsif else end
- unless条件语句
- unless条件语句
unless
unless
if not
if not
- case分支条件语句
- case分支条件语句
case
case
when
when
when
when
else
else
end
end
12. 循环语句
12. 循环语句
单行while |
(语句1;语句2;语句…)while条件 |
多行while |
while 条件 语句,语句 end |
until直到 |
until 跳出循环条件 语句 until 条件=while not (条件) |
for…in循环 |
for 变量 in 对象 语句1; 语句2 ; 语句… end |
单行while |
(语句1;语句2;语句…)while条件 |
多行while |
while 条件 语句,语句 end |
until直到 |
until 跳出循环条件 语句 until 条件=while not (条件) |
for…in循环 |
for 变量 in 对象 语句1; 语句2 ; 语句… end |
break,next&redo&retry
break,next&redo&retry
在循环体内,如若遇到:
在循环体内,要是超出:
break |
跳出当层循环; |
next |
忽略本次循环的剩余部分,开始下一次的循环; |
redo |
重新开始循环,还是从这一次开始; |
retry |
重头开始这个循环体。 |
break |
跳出当层循环; |
next |
忽略本次循环的剩余部分,开始下一次的循环; |
redo |
重新开始循环,还是从这一次开始; |
retry |
重头开始这个循环体。 |
times , upto , downto , each ,step
times , upto , downto , each ,step
语句 |
运行结果 |
3.times { print "Hi!" } |
#Hi!Hi!Hi! |
1.upto(9) {|i| print i if i<7 } |
#123456 |
9.downto(1){|i| print i if i<7 } |
#654321 |
(1..9).each {|i| print i if i<7} |
#123456 |
0.step(11,3) {|i| print i } |
#0369 |
语句 |
运行结果 |
3.times { print "Hi!" } |
#Hi!Hi!Hi! |
1.upto(9) {|i| print i if i<7 } |
#123456 |
9.downto(1){|i| print i if i<7 } |
#654321 |
(1..9).each {|i| print i if i<7} |
#123456 |
0.step(11,3) {|i| print i } |
#0369 |
C:\Documents and Settings\Administrator>irb irb(main):001:0> 1.upto(9){|i| print i if i<7} 123456=> 1 irb(main):002:0> 9.downto(1){|i|print i if i<7} 654321=> 9 irb(main):003:0> (1..9).each {|i| print i if i<7} 123456=> 1..9 irb(main):004:0> 0.step(11,3) {|i| print i} 0369=> 0 |
C:\Documents and Settings\Administrator>irb irb(main):001:0> 1.upto(9){|i| print i if i<7} 123456=> 1 irb(main):002:0> 9.downto(1){|i|print i if i<7} 654321=> 9 irb(main):003:0> (1..9).each {|i| print i if i<7} 123456=> 1..9 irb(main):004:0> 0.step(11,3) {|i| print i} 0369=> 0 |
13. 异常
13. 异常
Java
Java
try…catch…finally…throw
try…catch…finally…throw
Ruby
Ruby
begin/end…rescue…ensure…raise
begin/end…rescue…ensure…raise
retry能够用在rescue中。能够只用rescue或ensure,两个都选用时,rescue必须在ensure前。
retry能够用在rescue中。能够只用rescue或ensure,两个都选择时,rescue必须在ensure前。
14. 线程
14. 线程
1234下一页读书全文
3 概述 ¨ 解释实施: Python , Ruby
,交互性很好; ¨ 编译试行: 帕斯Carl, C ,速度很快。 n 本地实施,如 C ,
C++ ; n 虚构机实施,如 Ja…
你只怕感兴趣的稿子:
- ruby 学习笔记(2)
类的主干采取 - Ruby rails
页面跳转(render和redirect_to) - 在Ruby on Rails中使用Rails Active
Resource的教程