dart - Dart - 返回字符串,而不是类的实例
问题描述
我是 Flutter/programming 的新手,无法解决这个问题,不胜感激。只是试图返回一天的名称,即。2 = 星期二
String dayname = dayGetter(day).toString();
dayGetter(int daynumber){
var daynames = ['none','Mon','Tue','Wed','Thur','Fri','Sat','Sun'];
return daynames[daynumber];
}
这很好用,但我想将函数分离到它自己的文件中。
String dayname = NumberToDay(daynumber: day).toString();
.
class NumberToDay {
final int daynumber;
NumberToDay({this.daynumber});
var daynames = ['n/a','Mon','Tue','Wed','Thur','Fri','Sat','Sun'];
test(){
return daynames[daynumber];
}
}
但这会返回:“NumberToDay”的实例,我不知道为什么或如何解决它。
谢谢
解决方案
您缺少类方法调用,而是调用类的toString()
方法,这确实会打印其实例名称。只需创建对象的一个实例,然后调用它的方法。
NumberToDay myObjectInstance = NumberToDay(daynumber: day);
String dayName = myObjectInstance.test();
print(dayName); // should print correctly
如果您想要更直接的方法,您可以只调用该方法而不保留对象引用。
String dayName = NumberToDay(daynumber: day).test();
推荐阅读
- google-chrome-extension - Chrome 扩展:根据弹出元素中的获取请求,我在哪里可以看到端点请求的详细信息?
- javascript - 如何在搜索栏中更改路线 onSubmit?
- c++ - VEH挂钩加速度
- python - 尝试添加外键的 SQLAlchemy 错误
- wpf - WPF 行为不再适用于最新的 NuGet
- python - 如何在不打开 Chrome 浏览器的情况下使用 Selenium 获取数据?
- go - 如果结构浅拷贝,如何强制编译器错误?
- c - 查找该算法的时间复杂度
- apache-spark - 有没有办法使用 Spark Structured Streaming 来计算每日聚合?
- terraform - 带有 inline_policy 的 iam_assumable_role_custom