在函数参数中使用 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)