在函式引數中使用 GLib.Value

這個例子展示瞭如何在函式引數中傳遞幾種型別:

static void print_value (Value val) {
    print ("value-type : %s\n", val.type().name());
    print ("value-content : %s\n\n", val.strdup_contents());
}

public static void main (string[] args) {
    print_value (33);
    print_value (24.46);
    print_value ("string");
}
value-type : gint
value-content : 33

value-type : gdouble
value-content : 24.460000

value-type : gchararray
value-content : "string"

注意:如果 GObject 可以用’string’型別(gchararray) 轉換你的值,‘strdup_contents’返回轉換後的值,而不是指標地址

static void print_value (Value val) {
    print ("value-type : %s\n", val.type().name());
    print ("value-content : %s\n\n", val.strdup_contents());
}

public static void main (string[] args) {
    print_value (new DateTime.now_local());
}
value-type : GDateTime
value-content : ((GDateTime*) 0x560337def040)