关于Dart函数返回类型与调用方式的基础问题
Dart函数基础疑问解答
前置说明:你提供的代码存在语法错误
greet函数中print语句缺少闭合的单引号与右括号,修正后代码如下:
void greet (String personToGreet) { print('Hello, $personToGreet'); }
问题1解答
语法上完全允许你将myFunction改为void返回类型、删除return语句、内部直接用print输出pi*2的结果,两者的核心区别是函数的功能定位不同:
greet函数的设计目的是直接执行打印问候的动作,不需要向调用方返回任何可复用的数据,因此用void作为返回类型,无需return语句。- 原有
double返回类型的myFunction,设计目的是将计算得到的两倍pi值返回给调用方,调用方拿到返回值后可灵活处理:可以打印、可以用来计算圆周长、可以存储到变量中做后续运算等,适用场景更广。 - 如果你修改为void版本的
myFunction,代码如下:
调用时直接执行void myFunction () { double pi = 3.1415926; print(pi * 2); }myFunction()就会自动打印结果,但你无法再获取这个计算值做其他操作,仅适用于只需要打印结果的场景。
问题2解答
完全可以不定义中间变量接收返回值,直接将函数调用作为参数传入print即可,写法如下:
void main() { greet('Jack'); print(myFunction()); // 函数执行后的返回值直接作为print的输入参数 }
myFunction()执行后会直接返回计算好的double类型值,和先赋值给变量再打印的运行效果完全一致。
内容的提问来源于stack exchange,提问作者Bruce Zhang
相关产品推荐
相关产品推荐

