Ruby的“单行程序?/h3>
Z使?zhn)适应脚本语言Q首先介l几个Ruby的单行程序?/p>
# l典?Hello world.print "Hello world\n"
# 列出输入文g中包含”From”的行while gets(); print if /From / end
# 向文件中d行号while gets(); print $., ":", $_ end
# π的计print 4*Math.atan2(1,1), "\n"
Ruby的注?/h3>
Ruby的注释是指从#开始到该行l束?/p>
Ruby的表辑ּ
Ruby的表辑ּ包括下列内容Q主要的Q?/p>
- 字符?
- 字符串是指被单引?')或双引号(")括v来的部分。在用双引号括v来的字符串中Q可以用反斜杠(\)来指定{义字W,q同C语言是一L。同Ӟ?{}括v来的表达式的l果也被|入其中?
- 数?
- 整数QQҎ(gu)?
- 数组Q散列表
- 用[]括v来的一串表辑ּ是数l,而以{}括v来的一串表辑ּ是散列表?
- 散列表是一U可以把Lcd的对象都当成索引的数l。散列表有时也叫做哈希表或辞典?
- 变量Q常?
- Ruby中有常数?U变量。变量和常数的区别在于第一个字W有所不同?
- 局部变?
- 变量名以写英文字母开始。用时Q需要以赋值的方式q行初始化?
- 全局变量
- ?开始。未初始化的gؓnil?
- 实例变量
- 以@开始。未初始化的gؓnil?
- cd?
- 以@@开始。未初始化的gؓnil?
- cd?
- 以大写英文字母开始。未初始化的gؓnil?
- 赋?
- 变量赋值方法如下?
变量=表达?/pre>
- 调用Ҏ(gu)Q函敎ͼ
- 执行对象固有操作Q方法)的方法如?
表达?Ҏ(gu)名表辑ּ.Ҏ(gu)?表达?.)
- 在不引vh的情况下Q可以省略参数的括号?
- 调用某方法执行主体self的方法时Q可以省略最开始的表达式?
Ҏ(gu)名方法名(表达?.)
- 区分无参数的Ҏ(gu)调用和局部变量的Ҏ(gu)是看看有没有赋DE?
- 操作W表辑ּ
- 普通的式可以?基本上与C语言一L)操作W来表示。但内部是把操作W当作方法调?以操作符作ؓҎ(gu)?来处理的?
Ruby的语?/h3>
Ruby使用分号(;)或换行来分隔表达式,表达式串h构成语句。语句的值取决于最后执行的表达式的倹{?/p>
Ruby的流E控制结?/h3>
Ruby中可以用下列流E控制结构?/p>
- if表达?then代码?[elsif表达?then代码块]..[else代码块]end
- case表达式when表达?.;代码?..[else代码块]end
- while表达?代码块end
- for变量..in表达?代码块end
if和while的意思与通常的语a基本相同。可以用分h换行来代替if代码块中的then。请注意Ruby使用elsif代替C语言中的else if?/p>
case是把若干个比较归Z体的控制l构?/p>
for可以使用循环把数l等的元素分别赋值给变量?/p>
循环内可以用下列语句?/h3>- break
- 中断循环Q相当于C语言的breakQ?
- next
- 开始下一ơ@环(相当于C语言的continueQ?
- redo
- 重新执行块的W一行?
常用的语?/h3>
介绍几个RubyE序中常用的语句。这些语句是对象cȝҎ(gu)Q可以在McM使用Q就如同使用函数一栗?/p>
- gets
- 从命令行参数指定的文??中读取一行,然后把该行的内容作ؓ字符串返回。若没有制定命o行参数的话,则从标准输入中读取。读取的字符串可以被赋值给变量$_。遇到文件结束返回nil(??
while gets ...end
- 上面是典型的用法?
- print
- 输出函数。按序参数输出到标准输出上。省略参数时则输出变?_的倹{?/dd>

]]>