跳轉到內容

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 不是代數意義上的真正函式。它更準確地說是過程,你可能會偶爾聽到這個詞。但是,它還有一個第三個術語,稱為方法,其原因將在本書的後面闡明。現在,我們可以忽略這些差異。

華夏公益教科書