本节书摘来自异步社区《“笨办法”学Ruby》(第3版)一书中的习题1第一个程序,作者【美】Zed A. Shaw(泽德 A. 肖),更多章节内容可以访问云栖社区“异步社区”公众号查看。
习题1 第一个程序
“笨办法”学Ruby(第3版)
你应该在习题0上花了不少的时间,学会了如何安装文本编辑器,如何运行文本编辑器,如何运行终端,以及如何使用文本编辑器和终端。如果你还没有完成那个练习,请不要继续往下进行,否则你会觉得很不好过的。写在习题开头警告你不要跳过前面内容的警示在本书中仅此一次,切记切记。
将下面的内容写到一个取名为ex1.rb的文件中。Ruby文件最好以.rb结尾。
ex1.rb
1 puts "Hello World!"
2 puts "Hello Again"
3 puts "I like typing this."
4 puts "This is fun."
5 puts "Yay! Printing."
6 puts "I'd much rather you 'not'."
7 puts 'I "said" do not touch this.'
如果你是在Mac OS X下使用TextWrangler,那你的文本编辑器大致是图1-1所示的这个样子。
如果你是在Windows下使用Notepad++,那你看到的应该是图1-2所示的这个样子。
如果你的编辑器长得不是完全一样也不用担心,应该是非常接近的。创建文件时,你要记住以下两点。
1.注意我没有键入左边的行号。这些是为了便于对代码具体的某一行进行讨论(如“参见第5行”)额外加到书里边的。你无需将行号写进Ruby脚本中去。
2.注意截图中开始的puts语句,它和ex1.rb代码范例中的是完全一样的。这里要求你做到“完全一样”,而不是“差不多一样”。要让这段脚本正常工作,代码中的每个字符都必须完全匹配。当然,你的编辑器显示的颜色可能不一样,这并不重要,只有你键入的字符才是重要的。
需要在终端通过输入以下内容来运行这段代码:
ruby ex1.rb
如果写对了,你应该看到和下面“应该看到的结果”一节中一样的输出。如果不一样,就是你哪儿弄错了,计算机是不会错的。
应该看到的结果
在Mac OS X的Terminal下你看到的应该是图1-3所示的这个样子。
在Windows的PowerShell下你看到的应该是图1-4所示的这个样子。
你也许会看到ruby ex1.rb命令前面显示的一些信息不一样,这不是问题,重要的是你键入了这个命令,而且看到了相同的输出。
如果有错误,你会看到与下面类似的信息:
> ruby ex1.rb
ex1.rb:3: syntax error, unexpected tCONSTANT, expecting $end
puts "I like typing this." ^
你应该学会看懂这些出错信息,这是很重要的一点,因为你以后还会犯类似的错误。就是现在的我也会犯这样的错误。让我们一行一行来看。
1.首先我们在终端输入命令来运行ex1.rb脚本。
2.Ruby告诉我们ex1.rb文件的第3行有一个错误。错误的类型是“Syntax
Error”(语法错误),有些程序员专用的术语你通常可以忽略。
3.然后这一行出错的内容被显示出来,以供我们查看。
警告
如果你来自其他国家,而且你看到关于ASCII编码的错误,那就在你的Ruby脚本的最上面加入下面这一行:
# -*- coding: utf-8 -*-
这样你就在脚本中使用了Unicode UTF-8编码,这些错误就不会出现了。
巩固练习
每个习题都有巩固练习要完成。巩固练习里边的内容是供你尝试的。如果你觉得做不出来,可以暂时跳过,过段时间再回来做。
在这个习题中,试试下面几件事儿。
1.让你的脚本再多打印一行。
2.让你的脚本只打印其中的一行。
3.在一行的起始位置放一个“#”字符。它的作用是什么?自己研究一下。
从现在开始,除非是特别难的习题,否则我将不再解释每个习题的工作原理了。
注意
(octothorpe)有很多的英文名字,如pound(英镑符)、hash(电话的#键)、mesh(网)等。选一个你觉得酷的用就行了。
常见问题回答
下面是学生在做这些习题时问过的真实问题。
怎样让编辑器显示不同颜色?
编辑之前先将文件保存为.rb格式,如ex1.rb,后面编辑时你就可以看到各种颜色了。
看到错误信息:ruby: No such file or directory -- ex1.rb (LoadError)。
确认你的运行目录和你创建文件的目录是同一个。你需要先使用cd命令进入这个目录。例如,如果你的文件保存在lrthw/ex1.rb中,那么你需要运行cd lrthw/,然后再运行ruby ex1.rb。如果你看不懂以上内容,那就看一遍附录吧。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。