如何編寫您的第一個 Ruby 程序

介紹

“Hello, World!” 程式是電腦程式設計中的經典傳統。這是初學者的一個小而完整的第一個程式,也是確保您的環境正確配置的好方法。

本教程將指導您如何在Ruby中創建此程式。然而,為了使程式更有趣,您將修改傳統的“Hello, World”程式,讓它要求用戶輸入他們的名字。然後,您將在問候語中使用該名字。完成教程後,執行程式時將會看到如下程式:

Output
Please enter your name. Sammy Hello, Sammy! I'm Ruby!

先決條件

您應該在您的計算機上設置了一個本地 Ruby 開發環境。按照以下其中一個教程進行設置:

步骤1 — 编写基本的“Hello, World!”程序

要编写“Hello, World!”程序,请打开命令行文本编辑器,如nano,并创建一个新文件:

  1. nano hello.rb

一旦文本文件在终端窗口中打开,您将输入程序:

hello.rb
puts "Hello, World!"

让我们分解代码的不同组成部分。

puts是Ruby的方法,告诉计算机将一些文本打印到屏幕上。

然后puts方法后跟一个字符序列 — Hello, World!,用引号括起来。引号括起来的任何字符都被称为字符串。当程序运行时,puts方法将打印此字符串到屏幕上。

一些方法,像puts方法,在Ruby中是預設包含的。這些內建方法在你創建Ruby程式時總是可用的。你也可以定義自己的方法。

保存並退出nano,方法是輸入CONTROLX鍵,然後當提示是否保存文件時,按下y並按ENTER鍵。

讓我們試著運行你的程式。

步驟2 — 運行Ruby程式

當你寫完“Hello, World!”程式後,你就可以運行這個程式了。你會使用ruby命令,後面跟著你剛剛創建的文件名。

  1. ruby hello.rb

程式將會執行並顯示這個輸出:

Output
Hello, World!

讓我們來探索實際發生了什麼。

執行ruby命令啟動了Ruby解釋器。Ruby解釋器讀取了你指定的文件並評估了它的內容。它通過調用puts函數來執行puts "Hello, World!"這行。字符串值Hello, World!被傳遞給這個函數。

在這個例子中,字符串Hello, World!也被稱為一個參數,因為它是傳遞給一個方法的值。

引用 Hello, World! 兩側的引號並未顯示在螢幕上,因為它們告訴 Ruby 它們包含一個字串。引號標示了字串的開始和結束位置。

程式運行正常,但您可以使其更具互動性。讓我們來探索一下吧。

第三步 — 輸入提示

每次運行程式時,它都會產生相同的輸出。讓我們提示運行程式的人輸入他們的名字。然後,您可以在輸出中使用該名字。

不要修改現有的程式,而是在 nano 編輯器中創建一個名為 greeting.rb 的新程式:

  1. nano greeting.rb

首先,添加這行,提示用戶輸入他們的名字:

greeting.rb
puts "Please enter your name."

再次使用 puts 方法將一些文本輸出到螢幕上。

現在添加這行來捕獲用戶的輸入:

greeting.rb
puts "Please enter your name."
name = gets

接下來的這行有點複雜。讓我們來分解一下。

gets 方法告訴電腦等待從鍵盤輸入。這會暫停程式,使用戶可以輸入任何文本。當用戶按下鍵盤上的 ENTER 鍵時,程式將繼續運行。所有按鍵,包括 ENTER 按鍵,都將被捕獲並轉換為一個字符串。

你想在程式輸出中使用這些字符,所以你將該字符賦值給一個名為name的變量。Ruby會將該字符串存儲在計算機的內存中,直到程序結束。

最後,添加這行代碼來打印輸出:

greeting.rb
puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"

再次使用puts方法,但這次使用Ruby的一個功能叫做字符串插值,它允許你將賦值給變量的值放入字符串中。不再顯示name這個詞,而是顯示name變量中保存的值,這應該是用戶的名字。

保存並退出nano,按CTRL+X,然後在提示保存文件時按y,然後按ENTER

現在運行此命令來運行程序:

  1. ruby greeting.rb

系統將提示你輸入你的名字,請輸入並按ENTER。輸出可能不完全符合你的預期:

Output
Please enter your name. Sammy Hi, Sammy ! I'm Ruby!

不是顯示Hi, Sammy! I'm Ruby!,而是在名字後面換了一行。

該程序捕獲了你的所有鍵入,包括你按ENTER告訴程序繼續的按鍵。在字符串中,按ENTER鍵會創建一個特殊字符,該字符會創建一個新行。程序的輸出正是你告訴它要做的事情;它顯示你輸入的文本,包括那個新行。但這不是你想要的。但你可以修復它。

在編輯器中打開greeting.rb文件:

  1. nano greeting.rb

在你的程序中找到這一行:

greeting.rb
name = gets

greeting.rb
name = gets.chop

這裡使用了 Ruby 的 chop 方法來處理我們用 gets 捕獲的字符串。 chop 方法會從字符串中刪除最後一個字符。在這種情況下,它刪除了我們按下 ENTER 時創建的字符串末尾的換行符。

保存並退出 nano。按下 CTRL+X,然後在提示時按下 y 保存文件。

再次運行程序:

  1. ruby greeting.rb

這一次,當你輸入你的名字並按下 ENTER 後,你會得到預期的輸出:

Output
Please enter your name. Sammy Hi, Sammy! I'm Ruby!

現在你有一個 Ruby 程序,它接受用戶的輸入並將其打印到屏幕上。

結論

現在您已經知道如何提示輸入、處理結果並顯示輸出,請嘗試進一步擴展您的程序。例如,詢問用戶的最喜歡的顏色,並讓程序說它的最喜歡的顏色是紅色。您甚至可以嘗試使用相同的技術來創建一個簡單的 Mad-Lib 程序。

Source:
https://www.digitalocean.com/community/tutorials/how-to-write-your-first-ruby-program