来自 Vala 代码的 Genie 中的 Gtk Hello World

Gtk Hello World in Genie from Vala code

我想用 Genie 语言重现一个小的 Hello World Gtk 程序,基于以下 Vala 代码:

using Gtk;

int main(string[] args){
Gtk.init (ref args);
Gtk.Window window = new Gtk.Window (Gtk.WindowType.TOPLEVEL);
Gtk.Label label = new Gtk.Label("Hello world!");
window.add(label);
    window.set_default_size (300, 200);
    window.show_all ();
Gtk.main ();
return 0;
}

同样的代码在 Genie 中看起来如何?

看起来像这样:

[indent=4]
uses Gtk

init
    Gtk.init (ref args)
    var window = new Window (WindowType.TOPLEVEL)
    var label = new Label("Hello world!")
    window.add(label)
    window.set_default_size (300, 200)
    window.show_all ()
    Gtk.main ()

请注意 args 是隐式可用的。

我在分配 windowlabel 标识符时使用了类型推断。这是因为类型在右边写的很清楚。

您可以通过在标识符后面声明类型来明确类型。标识符和类型用冒号隔开:

    window:Window = new Window (WindowType.TOPLEVEL)
    label:Label = new Label ("Hello world!")

制表符是 Genie 中默认的缩进,但 Stack Overflow 坚持使用四个且仅是四个空格的倍数。如果您希望将 TAB 用于 Genie 代码的 HTML 示例,那么 HTML TAB 实体 效果很好。即使在 Stack Overflow 的预览中。但是,在此示例中,必须在开头使用 [indent=4]。