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