Vala 程式設計/入門/開始
Vala 仍在積極開發中,某些功能可能會隨著時間的推移而改變。 |
當我寫這篇文章時,Vala 仍在積極開發中,最新的 Vala 編譯器 "valac" 可以從 Vala 主頁 下載,需要手動編譯。
它也可以從您的發行版的倉庫中下載。在基於 Debian 的發行版(例如:Ubuntu)上,可以使用以下命令安裝它
$ sudo apt-get install valac
我們將從標準的 Hello World 程式開始
void main(string[] args) {
print("Hello, World\n");
}
void main(string[] args) {
這是函式定義的開始。Vala 尋找一個名為 "main" 的函式或方法,該函式或方法將在程式啟動時執行。
print("Hello, world!\n");
這行程式碼指示 Vala 執行 "print" 函式,並帶有一個字串引數 "Hello, world!\n"。在 Vala 中,這始終是您用於呼叫函式的語法。
最後一行只是結束 main 方法的定義。
將此檔案儲存為 hello.vala。假設您已安裝 Vala,那麼編譯並執行此程式所需的全部操作是
$ valac hello.vala
$ ./hello
Hello, world!
$
valac 是 Vala 編譯器,它將您的 Vala 程式碼轉換為 C。它還可以自動化將 C 編譯為機器程式碼的整個過程。生成的二進位制檔案可以直接在機器上執行。
如果給 valac -C 開關,它還會建立兩個名為 hello.h 和 hello.c 的檔案。如果您檢視這些檔案的內容,您會發現用 Vala 程式設計一個類等同於在 C 中完成相同的任務,但要簡潔得多。您還會注意到此類是在執行系統中動態定義的。這是一個很好的例子,展示了 GNOME 平臺的強大功能,但正如我之前所說,您不需要了解太多關於這方面的知識來使用 Vala。
我們可以編寫一個更復雜的示例,展示 Vala 的一些面向物件特性
using GLib;
public class Sample : GLib.Object {
public static int main(string[] args) {
stdout.printf("Hello, World\n");
return 0;
}
}
程式碼行
using GLib;
通知編譯器程式將使用 GLib 名稱空間。此名稱空間通常預設匯入,因此顯式匯入它是可選的。
下一行程式碼
public class Sample : GLib.Object {
標識類定義的開始,定義一個名為 Sample 的類,它是來自 Glib 名稱空間的 Object 類的子類。
程式碼行
public static int main(string[] args) {
是公共(在類外部可見)靜態(可以在沒有類例項的情況下呼叫)函式的定義,該函式將返回一個整數。它是程式的主要入口點(執行程式時呼叫的第一個函式)。
stdout.printf("Hello, World\n");
打印出 "Hello, World" 字元,並且
return 0;
將值零返回給呼叫方,表示函式成功終止。如果發生錯誤,main 函式通常返回 1。