Dart代码中额外输出的null值来自何处?
Dart代码中
null输出的原因解析 先看你提供的代码:
func(){ print("in func"); } void main() { var x = func; print(x()); }
运行后输出:
in func null
这里的null是因为Dart里未显式声明返回类型且无return语句的函数,默认会返回null。
具体来说,你的func函数既没指定返回类型,也没有用return语句返回任何值,Dart会默认把这类函数的返回值推断为dynamic类型。当函数执行完内部的print语句后,就会自动返回null。而你在main里调用print(x()),本质是把func执行后的返回值(也就是null)传给了print函数,所以就会额外输出一行null。
内容的提问来源于stack exchange,提问作者Ya Y
相关产品推荐
相关产品推荐

