跳轉到內容

Vala 程式設計/入門/開始

來自華夏公益教科書,開放的書,為開放的世界

獲取 Vala

[編輯 | 編輯原始碼]

當我寫這篇文章時,Vala 仍在積極開發中,最新的 Vala 編譯器 "valac" 可以從 Vala 主頁 下載,需要手動編譯。

它也可以從您的發行版的倉庫中下載。在基於 Debian 的發行版(例如:Ubuntu)上,可以使用以下命令安裝它

$ sudo apt-get install valac

Hello World

[編輯 | 編輯原始碼]

我們將從標準的 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。

華夏公益教科書