为何要有return返回值?

简介: 为何要有return返回值?

输出参数能做到的事情,为什么要用返回值呢,直接打印一下不就可以了吗?


接下来就说说有哪些是输出参数做不了的事情,然而返回值能做的,并且效率更高。


区别:调用者必须负责分配或者声明输出参数的存储,必须负责输出参数的有效性。如果这个参数本身是非法的,则往输出参数写数据会出现不可预期的后果。


而对返回值来说,调用者不需要预先分配返回值所占用的空间,这个空间必然存在,它是在生成返回值的时候自动创建的。


用买奶茶打比方的话,输出函数类似于你去买奶茶必须自带杯子不然什么都得不到,而返回值意味着卖家提供了已经打包好的奶茶。


换个角度,对于一个函数来说,只有返回值是必定有效的对外沟通渠道,而调用者传入的输出参数完全可能是非法的。

相关文章
|
3月前
如何判断`instanceof`操作符的返回值是否为`true`
`instanceof`操作符用于判断一个对象是否是指定类型或其子类型的实例。如果对象是指定类型的实例,则返回`true`,否则返回`false`。例如:`if (obj instanceof MyClass)` 会检查 `obj` 是否是 `MyClass` 类或其子类的实例。
71 3
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
|
算法
三元运算符 return mData == null ? 0 : mData.size();的含义
三元运算符 return mData == null ? 0 : mData.size();的含义
72 0
|
9月前
|
前端开发 数据库
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
281 1
|
9月前
printf函数的返回值
printf函数的返回值
49 0
|
Java Apache Spring
isEmpty函数的调用
StringUtils中isEmpty函数的使用
195 0
isEmpty函数的调用
printf 函数的返回值问题
printf 函数的返回值问题
131 0
printf 函数的返回值问题
|
C++
一个函数两个return
一个函数两个return
230 0
C++类中int getX( ) const {return x;}含义
C++类中int getX( ) const {return x;}含义
248 0
|
Java 存储
==运算符和equals()方法的区别
==运算符和equals()方法的区别 Java语言程序中判断两个变量是否相等有两种方式:一是运用==运算符,二是运用equals方法。 1. ==运算符 对于==运算符来说,如果两个变量是基本类型的,并且是数值类型,则只要它们的值相等,就会返回true;然而如果是两个引用类型的变量,则分为两种情.
1568 0