Hello World 參考頁面是一份可搜尋的目錄,收錄十二種不同程式語言中能列印相同訊息的最簡程式,讓您把一個常規的進入點複製到檔案中,並使用該語言的官方工具鏈執行。不必為每種語言猜測檔名、進入函式或編譯器的呼叫方式,您可以依語言名稱、執行階段、檔名或一小段程式碼進行篩選,然後複製參考頁所顯示的完整程式碼區塊。這個頁面本身是唯讀的:它不會執行您貼上的程式碼、不會開啟檔案,也不會儲存您的選擇,因此不會為您的機器帶來任何依賴。當您正在設定新的工具鏈、跨生態系比較語法,或只是想在做實事之前先確認直譯器或編譯器已正確連接時,這種分離的設計就很關鍵。
不同語言的 Hello World 範例在精神上看起來相似,但在形式上差異極大。C、C++、Go、Rust 和 Swift 通常會編譯成本地可執行檔。Java 和 Kotlin 會編譯成 JVM 位元組碼,而 C# 通常是在 .NET 專案中建置。屬於直譯式語言的 Python、Ruby 和 PHP 仍然需要執行階段,而用於選擇指定版本的指令會因作業系統而異。JavaScript 可以在瀏覽器的開發者主控台中執行,也可以在 Node.js 下執行,兩種環境下的模組與全域規則並不相同。一份為每個程式碼片段標示典型來源檔名與大致執行階段的參考資料,能讓這些差異一目了然,而不會把它們藏進專案範本之中。

Hello World 參考資料實際上展示了什麼
Hello World 程式的參考頁面不是教學課程、不是書籍,也不是可執行的沙盒。它是一張精簡的表格,列出十二個經過驗證的程式碼片段,每一個都對應到一個語言名稱、一個典型來源檔名,以及一個大致執行階段類別。這份參考資料把最簡單的「列印輸出」程式視為單一且狹窄的議題:來源文字送達標準輸出、開發者主控台,或類似的輸出通道。正式程式碼通常需要的其他一切——包括套件管理、輸入處理、錯誤處理、測試、專案佈局、設定以及部署——都刻意不在討論範圍內。
正因為這種狹窄的聚焦,這份參考才能持續作為設定檢查清單而實用。當您剛裝好一套編譯器或直譯器時,確認工具鏈是否正確連接的最快方法,就是餵給它該語言最小且有效的程式,並檢查輸出結果。不同程式語言的 Hello World 工具收錄了十二筆經來源核對的紀錄,每筆都有唯一編號與語言名稱,可在語言、執行階段、檔名與程式碼欄位中搜尋正規化後的文字,並複製所顯示的完整程式碼片段,過程中既不執行程式碼也不存取您本機的檔案。這個頁面是純用戶端的參考資料,所以離開您瀏覽器的,就只有您選擇貼到編輯器中的那些內容。
如何找到正確的 Hello World 範例
- 在瀏覽器中開啟「不同程式語言的 Hello World」參考頁。
- 使用四種訊號之一在搜尋框中輸入:語言名稱(例如「Rust」或「Python」)、執行階段或平台(「Node.js」、「JVM」、「.NET」)、慣用檔名(「hello.py」、「main.go」),或一小段程式碼片段(「println」、「fmt.Println」)。
- 瀏覽篩選後的列,直到所顯示的檔名、執行階段與程式碼區塊符合您正在使用的語言與工具鏈。
- 複製完整的範例,包括片段中顯示的每一行、引號、分號、大括號以及 import 陳述式。
- 將程式碼片段貼到純文字編輯器中,並以參考頁所顯示的精確檔名儲存,使用您的工具鏈所支援的文字編碼。
- 執行該語言目前的官方建置或執行指令,然後將列印出的輸出與預期訊息進行比對。
這個搜尋之所以有效,是因為底層的紀錄在每一個可搜尋欄位中都儲存了正規化後的文字。輸入像「swift」這樣的部分識別字,或像「hello.kt」這樣的檔名,即使您的拼字或大小寫稍有不同,仍會回傳相符的列。輸入像「fmt」或「System.out」這類符記,則會回傳進入點使用該精確呼叫的語言。一旦某列被篩選出來,複製動作會擷取整個顯示出來的區塊,因此您不必手動反白個別行,也不必擔心漏掉一個右大括號。
十二種語言,一個常規的進入點
這十二筆參考紀錄會依語言抵達輸出通道的方式自然分組。下表說明了這些分組、為每種語言所顯示的典型檔名樣式,以及參考資料所使用的大致執行階段類別。每種語言的精確檔名與片段文字都儲存在工具本身;此處的表格只是勾勒目錄的輪廓,讓您在搜尋之前能先選對分組。
| 分組 | 典型檔名樣式 | 執行階段或建置目標 | 代表性語言 |
|---|---|---|---|
| 編譯成本地可執行檔 | hello.c、hello.cpp、hello.go、hello.rs、hello.swift | 從命令列執行的作業系統層級二進位檔 | C、C++、Go、Rust、Swift |
| 編譯成受控的位元組碼或 IL | Hello.java、Hello.kt、Program.cs | Java 與 Kotlin 使用 JVM;C# 使用 .NET 專案 | Java、Kotlin、C# |
| 從來源直譯執行 | hello.py、hello.rb、hello.php | 已安裝的直譯器,加上指定版本的選擇指令 | Python、Ruby、PHP |
| 在宿主環境中執行的腳本 | hello.js | 瀏覽器開發者主控台或 Node.js | JavaScript |
在每個分組中,程式碼片段是常規的命令列形式,而非圖形應用程式、網頁框架或建置工具的樣板。一份混入了範本、套件清單或視覺化專案精靈的參考資料,反而會模糊您真正想學的部分——也就是印出一行文字的語法。透過把檔名、執行階段標籤與程式碼區塊並列陳述,參考頁讓您得以跨語言比較進入點,而不必把不相關的建置系統或框架慣例一起拖進來。
在您的工具鏈中複製並執行程式碼片段
複製是簡單的一半。較難的一半是確保您機器上的工具鏈確實能夠建置或直譯您貼上的內容。原生分組中的編譯式語言(包括 C、C++、Go、Rust 和 Swift)在執行前需要額外的步驟,因為來源檔無法直接執行。參考頁會標示典型檔名,讓您得以與編譯器預期的輸入對應,但編譯器的呼叫方式、最佳化旗標與連結器行為並不屬於程式碼片段的一部分。Rust 專案的 Hello World 章節 以及 Python 的 print 函式參考,就是說明各語言目前建置與執行指令的官方文件範例。
對於直譯式語言而言,必須先安裝執行階段,且您所輸入的指令必須能選到指定的版本。某個系統可能預先安裝了一個 Python,又讓您另外安裝另一個版本,因此執行該檔案的指令可能在 python、python3 或版本管理器底下的某個路徑之間變動。JavaScript 又多了一個層面:同一個 hello.js 檔案,在瀏覽器主控台中(document、window 與 alert 皆存在)的行為,與在 Node.js 下(這些全域不存在,模組規則適用)的行為並不相同。參考頁上的程式碼片段在兩種情況下相同,但周圍環境並不相同。
一旦程式執行後,請修改訊息以確認編輯確實串接到了輸出。標準輸出可能會被緩衝或重新導向,因此出現缺漏或亂碼的一行,往往指向終端機編碼或輸出重新導向的問題,而非來源檔本身。瀏覽器中的 JavaScript 會寫入開發者主控台,而非可見的頁面,因此輸出會出現在「Console」分頁中,而不是文件主體中。正式程式碼應使用適當的日誌記錄機制,而非在效能敏感或隱私敏感的路徑上散布教學性質的列印;帳號憑證、權杖或個人資料也絕對不應只是為了證明某段路徑執行過就被列印出來。
Hello World 的盡頭與正式專案的起點
成功執行 Hello World 是起點,而不是終點。它證明了來源文字能夠在目前的工具鏈下抵達標準輸出通道,但並不能證明這個語言適合您的問題、標準函式庫符合您的使用情境,或生態系能支援您接下來會用到的函式庫。這份參考資料刻意把範圍限制在那一條狹窄的路徑上,因此若讀者把它當作完整的學習方案,將會錯過那些在程式長大到超過一個檔案之後才真正重要的部分。
Hello World 跑通之後的下一步眾所周知,卻很容易被跳過。新增一個小測試,用以執行 print 呼叫或其等效動作,讓未來的更動不會在無聲中破壞最基本的輸出路徑。把來源移入版本控制,建立一個全新的儲存庫。閱讀該語言的官方文件,了解專案佈局、相依套件管理器以及打包模型。直到那時,語言的選擇才開始變得重要,因為第一個程式已經完成它的任務:它確認了工具鏈是活的,而且您能以常規的進入點抵達輸出通道。
導致複製來的 Hello World 片段失敗的錯誤
大多數 Hello World 的失敗並非來自程式本身,而是來自片段與工具鏈之間的那段路徑。如果編譯後的片段失敗,請先閱讀編譯器所列印的第一則診斷訊息,並在更動程式碼前先確認檔名與語言版本。貼上的片段在複製進富文字編輯器時也可能會壞掉,因為編輯器會把直引號換成花引號、刪除開頭的一行,或插入不換行空格。Python 以縮排表示區塊,因此即便每一行在編輯器中看起來都正確,混用 Tab 與空白的檔案仍會被拒絕。C 家族的語言也可能因為花引號悄悄溜過編譯器的詞法分析器而以同樣的方式失敗。
分號是另一個常見的混淆來源。有些語言要求每個陳述式都加上分號,有些在特定情境下允許省略,也有少數語言完全禁止使用分號。參考頁上顯示的是各語言的常規形式,因此片段本身在內部是一致的;錯誤通常出現在把不同範例的程式碼混到同一段時。如果在做完這些顯而易見的檢查後編譯仍然失敗,請把貼上的檔案與參考頁進行比對,並查閱該語言目前的官方文件,因為工具鏈會演進,較舊教學中所顯示的建置指令可能已與目前安裝的版本不再相符。