在Julia中将Day类型时长转换为Int64整数的实现方法咨询
Day类型转Int64的多种实现方案
核心逻辑
所有实现的本质都是提取Day()类型封装的天数整数值,再转换为Int64格式,无额外计算开销。
不同场景的实现方式
- Python场景(自定义/第三方库Day类型)
已知Day类型封装days属性时,直接取值转换,时间复杂度O(1),性能最优:
未知Day类型内部结构时,用正则解析字符串提取,时间复杂度O(n),灵活性最高:import numpy as np day_obj = Day(42) int64_res = np.int64(day_obj.days) # 无numpy依赖时可使用ctypes转标准Int64 # import ctypes # int64_res = ctypes.c_int64(day_obj.days).valueimport re day_obj = Day(42) day_num = int(re.search(r'\d+', str(day_obj)).group()) int64_res = np.int64(day_num) - Go语言场景(time包Day返回值)
直接做类型强转即可:day := time.Now().Day() int64Res := int64(day) - 静态语言自定义Day结构体场景
提前实现类型转换方法,一次封装可复用:// Rust示例 struct Day(u32); impl From<Day> for i64 { fn from(d: Day) -> Self { d.0 as i64 } } // 调用逻辑 let day = Day(42); let int64_val: i64 = day.into();
内容的提问来源于stack exchange,提问作者Georgery
相关产品推荐
相关产品推荐

