string - 如何在 Vala 中将 int64 格式化为大写十六进制?
问题描述
以下示例无法编译
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 格式字符串并接受 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);
}
推荐阅读
- java - Java 8 流 | 文本文件中行的平均字数
- android - TimerTask 在服务中停止触发
- python - 将列表与数据框列进行比较并使用数字创建新列
- android - 操作栏中的 ImageView
- excel - SaveasCopy 代码 - 来自某些单元格的名称
- java - How to check that the entered input is an integer or not in java?
- python - 如何在电影评分推荐系统中为我的模型准确性应用归一化平均绝对值::
- angular - Why is the format 'HH:mm' not working in this DatePipe?
- c++ - 函数结束后指针会死吗?
- reactjs - 如果与 DefinePlugin 一起使用,将应用程序部署到 Heroku 不起作用