dart - 如何在 Dart 或 Flutter 中创建点函数
问题描述
假设我想在调用时将 UNIX 整数转换为 DateTime 格式。(这只是一个例子)我想创建一个类似的函数.toUpperCase();
,.toString();
其中函数将该特定项目作为参数而不写在括号内。我确实尝试过进入这些默认核心功能,但没有帮助。
我该如何为自定义功能做到这一点?现在我在这里:
//------------- main()----------//
void main() {
int unixDT = 1619691181;
// print(unixDT.toDateString()); //<-----this is what I'm looking for
}
//------- This is a function that should be in another-separate dart file-------//
String toDateString(int dt) {
DateTime datetime = new DateTime.fromMillisecondsSinceEpoch(dt);
return datetime.toString();
}
如果您需要澄清,请发表评论。这是我在 StackOverflow 上的第一个问题,所以如果有任何错误,我深表歉意。
解决方案
听起来您正在寻找扩展方法:
void main() {
const unixDT = 1619691181;
print(unixDT.toDateString()); // 1970-01-19 18:54:51.181
}
extension IntToDateStringExtension on int {
String toDateString() => DateTime.fromMillisecondsSinceEpoch(this).toString();
}
推荐阅读
- gradle - 在 Teamcity CI 代理中重用 Gradle 缓存
- blazor - Blazor:如何通过单击按钮提交表单
- nlp - 使用 encode_plus 方法时的标记索引序列长度错误
- azure-data-factory - 避免顺序数据流的较长计算采集时间
- python - 如何解决 python 人性化错误:ImportError cannot import name on_windows from 'humanfriendly.compat'
- json - 使用 JSON 数组索引 0 或子字符串更新单元格
- docker - 如何从容器访问在本地机器上运行的应用程序?
- javascript - 如何在时刻js中获得N个日期之间的差异?
- internet-explorer-11 - IE11 Script1003:应为“}”
- google-sheets - 谷歌表格从第一个字母拆分/修剪