跳转到内容

Io 编程/初学者指南/你的第一个程序

来自维基教科书,开放的书,开放的世界

你的第一个程序

[编辑 | 编辑源代码]

学习编程时,通常首先学习的是如何编写一个将“Hello, world!”打印到控制台的程序。它让新程序员了解简单的程序是如何构建的。Io 有很多方法可以编写基本上做同样事情的程序,因此有时可能让人困惑应该使用哪一个。写入屏幕也不例外!

进入 Io 的交互式解释器(在控制台中输入 io),然后输入以下内容

writeln("Hello, world!\n")

使用交互式解释器,这应该看起来像这样

$ io
Io> writeln("Hello, world!\n")
Hello, world!
==> nil

看起来 writeln 正在告诉 Io 将某些内容写入控制台,具体来说是括号内的内容。但是,为什么要用括号?这一行没有其他内容,所以它应该能够通过只打印这一行的剩余部分来弄清楚你的意思,对吧?

虽然它们对于在散文中插入注释很方便,但它们也方便用于将所有类型的东西(例如杂货清单、待办事项、代数表达式,以及如这个括号表达式清楚显示的那样,括号示例的示例列表!)组合在一起。Io 在第二种常见用途中使用括号:在这种情况下,将你想要 writeln 处理的内容组合在一起。你想要让 writeln 处理的每个项目都用逗号隔开,如下所示

Io> writeln("Hello" , " there!")
Hello there!
==> nil

请注意,在这种情况下,我们向 writeln 提供了两个要处理的内容,用逗号隔开。如果我们愿意,我们可以给 writeln 提供 50 个要写出的内容,每个内容用逗号隔开。

到目前为止,我们还没有完全回答这个问题。让我们尝试一个稍微不同的程序,这应该有助于说明这一点。只需在以下位置输入以下内容

Io> greet := method(
)-> writeln("What is your name?"); you := File standardInput readLine;
)-> writeln("Hello ", you)
)-> )

Io 将以以下内容响应

==> method(
    writeln("What is your name?"); you := File standardInput readLine
    writeln("Hello ", you)
)

不要担心所有这些胡言乱语是什么意思。我们基本上所做的就是编写了一个非常简单的 Io 程序——事实上,这是你的第一个程序!让我们运行它

greet

它会要求你输入你的姓名。继续输入你的姓名

What is your name?
Sam
Hello Sam
==> nil

为什么 write 需要那些括号的答案就在上面的程序中。如果 writeln 只消耗这一行的剩余部分,那么就不可能将多个要执行的指令串联在一起。它可能会打印出类似以下内容

Io> greet
What is your name?
you := File standardInput readLine
Hello·
 Exception: Object does not respond to 'you'
 ---------
 Object you                           greet Line 3

哇!这是什么乱七八糟的东西?我们将在本书的后面了解这些东西是什么。幸运的是,我们有这些括号来让我们保持在正确的轨道上。

现在,我一直在把括号内的所有内容称为东西。它们确实如此,但它们有一个更准确的名称。与其不断地将这些东西称为东西,我们选择将它们称为参数

有了所有这些括号和参数四处飞舞,这可能开始听起来像你在远古时代的高中代数课上学过的东西。你是对的——这种符号来自代数函数的概念。writeln 被称为函数名,"Hello "you 是它的参数。··

注意

writeln 不是代数意义上的真正函数。它更准确地说是过程,你可能会偶尔听到这个词。但是,它还有一个第三个术语,称为方法,其原因将在本书的后面阐明。现在,我们可以忽略这些差异。

华夏公益教科书