# 入参和出参(Input Parameters and Output Parameters)
同`javascript`一样,函数有输入参数,但与之不同的是,函数可能有任意数量的返回参数。
### 入参(Input Parameters)
`入参(Input Parameter)`与变量的定义方式一致,稍微不同的是,不会用到的参数可以省略变量名称。一种可接受两个整型参数的函数如下:
```
pragma solidity ^0.4.0;
contract Simple {
function taker(uint _a, uint) {
// do something with _a.
}
}
```
### 出参(Output Parameters)
`出参(Output Paramets)`在`returns`关键字后定义,语法类似变量的定义方式。下面的例子展示的是,返回两个输入参数的求和,乘积的实现:
```
pragma solidity ^0.4.0;
contract Simple {
//return sum and product
function arithmetics(uint _a, uint _b) returns (uint o_sum, uint o_product) {
o_sum = _a + _b;
o_product = _a * _b;
}
}
```
出参的的名字可以省略。返回的值,同样可以通过`return`关键字来指定。`return`也可以同时返回多个值,参见[Returning Multiple Values](http://solidity.readthedocs.io/en/develop/control-structures.html#multi-return)。出参的默认值为0,如果没有明确被修改,它将一直是0。
入参和出参也可在函数体内用做表达式。它们也可被赋值。
### 返回多个值(Returning Multiple Values)
当返回多个参数时,使用`return (v0, v1, ..., vn)`。返回结果的数量需要与定义的一致。
#
- Solidity语言
- 入门说明
- Solidity智能合约文件结构
- 智能合约源文件的基本要素概览
- 值类型
- 类型
- 布尔
- 整型
- 地址
- 字节数组
- 小数
- 字符串
- 十六进制字面量
- 枚举
- 函数
- 引用类型
- 引用类型
- 数据位置
- 数组
- 数据结构
- 杂项
- 映射
- 左值运算符
- 类型间的转换
- 类型推断
- 单位
- 货币单位
- 时间单位
- 语言内置特性
- 特殊变量及函数
- 数学和加密函数
- 地址相关
- 进阶
- 入参和出参
- 控制结构
- 函数调用
- 创建合约实例
- 表达式的执行顺序
- 赋值
- 作用范围和声明
- 异常
- 内联汇编
- 合约详解
- 合约
- 可见性或权限控制
- 访问函数
- 函数修改器
- 常状态变量
- 回退函数
- 事件
- 继承
- 接口
- 其它
- 库
- 状态变量的存储模型
- 内存变量的存局
- 调用数据的布局