Page 3 概述
¨ 解释执行:Python,Ruby,交互性很好;
¨ 编译执行:Pascal, C,速度较快。
n 本地执行,如C,C++;
n 虚拟机执行,如Java, C#。
¨ 动态语言,如JavaScript,Ruby;
¨ 静态语言,如C++,Java。
语言
¨ 语法
关键字
¨ 语义
¨ 语用
松本行弘(Matz) 1993
Ruby [`ru:bi](红宝石)
Ruby 吸取了 perl 的正则表达式, python 的简单性可读性,smalltalk 的纯面向对象语法和单继承,LISP 的无穷嵌套的语法,Java的线程…
Page 14 上手
XP
Cmd
C:\Documents and Settings\Administrator>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
第一种方式:ruby命令
C:\Documents and Settings\Administrator>ruby -e 'print "hello world"'
hello world
ruby 运行ruby;
-e 执行后面的ruby脚本程序;
print 打印显示;
hello,world 要输出的内容。
第二种方式:irb交互执行
C:\Documents and Settings\Administrator>irb
irb(main):001:0> print "hello world"
hello world=> nil
irb(main):002:0> exit
exit: 退出irb交互式环境
第三种方式:创建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
Page 17 IDE
¨ Eclipse + RDT(Ruby Development Tools)
¨ FreeRIDE+SciTE
1.在SciTE编辑Ruby代码;
2.保存为 .rb文件;
3.菜单栏,工具->运行或者F5;
Page 18 语法
1. 注释
单行注释 # 多行注释 =begin =end
Ruby的内嵌文档(Rdoc)注释,用ri命令从源文件中产生文档。
Rdoc内嵌在ruby代码之中的,可以转换为html文档。
ri命令,用来查看函数说明、类说明。函数说明、类说明应该放置在=begin和=end之中。注意:“=begin”一定要写在行首,也就是说,这一行前六个字符是“=begin”,之前不允许有空格。
2. 分行
用分号;表示语句结束。
一行多个语句,用分号隔开,最后一个语句,分号可以省略,换行符表示一行结束。
语句太长,可以在行末用符号 \ ,表示续行。
3. 分隔符
名称
符号
用途
分号
;
用来分隔一行中的多个语句
圆括号
( )
提高优先级;定义方法时容纳参数列表
空格
分隔字符;在可省略()的地方,代替()
逗号
,
隔开多个参数
点
.
将对象与它的方法隔开
紧连的两个冒号
::
域作用符,将模块(类)与它的常量隔开
4. 关键字
Ruby中的关键字如下:
模块定义:
module
异常处理:
rescue,ensure
类定义:
class
对象引用:
super,self
方法定义:
def,undef
块的起始:
begin/end
检查类型:
defined?
嵌入模块:
BEGIN,END
逻辑值和空值:
true,false,nil
文件相关:
__FILE__,__LINE__
逻辑判断:
not,and,or
方法返回:
return
条件语句:
if,then,else,elsif,case,when,unless
别名:
alias
循环语句:
for,in,while,until,next,break,do,redo,retry,yield
BEGIN模块相当于C语言中的宏,END模块用来作一些收尾工作。有了
require,include,应该取消BEGIN和END的语法定义。
5. 运算符
6. 标识名:
常量,变量,方法,类和模块;
大小写敏感;
标识名第一个字符表明这个名字的用法。
局部变量、方法参数和方法名称
以小写字母开头或者下划线开头;
类名、模块名和常量
用大写字母开头。
全局变量
以美元符为前缀$;
实例变量
以@开头;
类变量
用@@开头;
词首字母后面可以是字母、数字和下划线的任意组合;
@后面不可以直接跟数字。
Ruby程序代码用7位ACSII码来表示,通过语言扩展来支持 EUC,SJIS或UTF-8等8位编码系统。Ruby2.0版本将支持16位的Unicode编码。
7. 类库
可以直接使用:
i) 关键字;
ii) require或者include包含的类库中的类、方法;
iii)从父类中继承得到的方法。
puts
每个参数后自动换行
不自动换行,换行用”\n”
printf
按格式输出,不自动换行
gets
从键盘或文件中读入数据
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
注意:printf的参数之间用逗号隔开。
C:\Documents and Settings\Administrator>ruby -e ' printf "number:%4.3f,string %s
",1.5,"hello world"'
number:1.500,string hello world
8. 数据类型
类型
分类
说明及示例
数字
整数型
0 八进制,
0x 十六进制,0b 二进制
浮点型
字符串
单引号 ‘'
双引号 “”
数组
从0开始,每个元素可以不同类型
例 [2.4,"thank you",[a,b,c],78]
区间
1..5
1,2,3,4,5
1…5
1,2,3,4
正则表达式
9. 赋值运算
交换变量a,b的值:
a,b=b,a;
注意括号:
a = (b = 1 + 2) + 3 #a=6 ,b=3
逗号,从左往右运算,分别赋给a,b,c
x = 0 #x=0
a,b,c = x, (x+1), (x+2) #a=0 ,b=1,c=2
10. 条件运算
==
等于
!=
不等于
eql?
比较两个对象的值、类型是否相等
equal?
比较两个对象在内存中地址是否相同
<
小于
>
大于
<=
小于等于
>=
大于等于
=~
匹配正则表达式
!~
断言不匹配正则表达式
===
右边的对象在左边区间内
puts(0..9)===3.14 #true puts('a'..'f')==='c' # true
<=>
比较两个对象大小,大于1,等于0,小于-1.
Ruby里,nil和false为假,其它都为真。
11. 判断语句
- 单行if语句
if then end
( ) if
- 多行if语句
if elsif else end
- unless条件语句
unless
if not
- case分支条件语句
case
when
when
else
end
12. 循环语句
单行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
重头开始这个循环体。
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
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. 异常
Java
try…catch…finally…throw
Ruby
begin/end…rescue…ensure…raise
retry可以用在rescue中。可以只用rescue或ensure,两者都使用时,rescue必须在ensure前。
14. 线程
1234下一页阅读全文
Terry,Ruby,读书笔记
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]