User:Zuohaocheng/Ruby编程教程 Part2

维基百科,自由的百科全书

准备工作[编辑]

打开终端(运行-cmd), 或者使用EMACS的eshell(M-x eshell), 推荐后一种方式.

然后, 在命令行中输入irb, 进入ruby环境.

基本操作[编辑]

在EMACS中, 操作方法当然就是EMACS方法, 如Part1所述;

在终端中, 同样使用类似EMACS的键绑定方式, 例如C-a为到行开头等等, 只是略有不同.[1]

irb中, 输入表达式即可得到该表达式的值, 例如

>> 1 + 1

=> 2

也就是说, ruby中的每一个表达式都有其自己的值. 注意, 要自己验证代码!

基本语句[编辑]

既然是编程语言, 还是要有几个基本语句的.

集合[编辑]

集合论是数学的基础, 所以也是编程的一个基本.

collection1 = [1, 3, 2]
collection2 = %w{zuo haocheng}

布尔值[编辑]

首先是布尔值, 也就是真/假的概念:

假:false, 或者nil

其它的都是真. 同时, 标准的真是true. [2]

条件语句[编辑]

针对单行的条件语句:

puts "if在true时执行" if true
puts "unless在false时执行" unless false

循环语句[编辑]

循环语句主要分为两种:

条件式[编辑]

条件式是指, 在条件满足的时候一直执行循环.

i=0
while i < 5
  puts i
  i += 1
end

也可以这么写:

(puts i; i+=1) while i < 5

遍历式[编辑]

遍历式是指, 对一个集合中的所有元素执行一次操作.[3]

for i in collection1
  puts i+1
end

当然也可以这么写[4][3]:

collection2.each { |str| puts str }

预告[编辑]

Part3: 函数

作业[编辑]

Part 1[编辑]

输出:

01234567891011121314151617181920

不换行的输出不用puts, 用print.

Part 1.1[编辑]

输出:

0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-

别忘了"#{i}"语法.

Part 2[编辑]

输出:

***********----------

11个*, 10个-

字符要用引号'或者"括起来.

Part 3[编辑]

输出

----------*----------

10个-, 1个*, 10个-

Part 4[编辑]

输出

---------***---------

9个-, 3个*, 9个-

Part 5[编辑]

输出[5]

----------*----------
---------***---------
--------*****--------
-------*******-------
------*********------
-----***********-----
----*************----
---***************---
--*****************--
-*******************-
*********************

注释[编辑]

  1. ^ 当然也可以设定为Vim的键绑定方式, 但是...
  2. ^ 请注意, 0是真.
  3. ^ 3.0 3.1 执行出错了说明你前面的代码没做! 面壁去!
  4. ^ Ruby的语法是很灵活的
  5. ^ 这题用ruby的简单程度令人发指...
    1.upto(21){|i| puts ('*' * i).center(21, '-') if i.odd?}
    

    请将上述代码的含义解释清楚.