以下示例无法编译
public static int main (string[] args) {
var now = new GLib.DateTime.now_utc();
int64 val = now.to_unix();
print ("%" + int64.FORMAT + "\n", val);
print ("%X\n", val); // ERROR
return 0;
}
有一个int64格式的字符串用于十进制表示,但没有一个十六进制表示(请参见Valadoc)。 %X
也无效。如何获取int64的大写十六进制格式?
错误是类型错误:参数2:无法从int64
转换为uint
print
使用printf format string并接受long long类型,该类型指定为至少64位。您可以使用%llX
将int64打印为大写十六进制。
工作示例:
void main () {
var now = new GLib.DateTime.now_utc();
int64 val = now.to_unix();
print ("%" + int64.FORMAT + "\n", val);
print ("%llX\n", val);
}