输入输出参数 inout

函数参数默认是常量。试图在函数体中更改参数值将会导致编译错误(compile-time error)。这意味着你不能错误地更改参数值。如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数(In-Out Parameters)。

定义一个输入输出参数时,在参数定义前加 inout 关键字。一个输入输出参数有传入函数的值,这个值被函数修改,然后被传出函数,替换原来的值。

你只能传递变量给输入输出参数。你不能传入常量或者字面量,因为这些量是不能被修改的。当传入的参数作为 输入输出参数 时,需要在参数名前加 &符,表示这个值可以被函数修改。

注意 输入输出参数不能有默认值,而且可变参数不能用 inout 标记

下例中, swapTwoInts(:: ) 函数有两个分别叫做 a 和 b 的输入输出参数:

func swapTwoInts(_ a: inout Int, _ b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}

swapTwoInts(:

最新文章

  1. 每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? php
  2. Tomcat性能调优方案
  3. URL中“#” “?” &“”号的作用
  4. grok
  5. DBA_Oracle Erp升级时如何确定具体的Patch ID(案例)
  6. 如何在客户端配置ODBC来访问远程DB2 for Windows服务器
  7. 健康管理app要注意哪些要点
  8. ubuntu16.04搭建ftp服务器
  9. [Swift]LeetCode147. 对链表进行插入排序 | Insertion Sort List
  10. Java 学习 UUID 与 时间格式化、时间操作
  11. VB6 XArrayDB | Xarray ReDim 用法
  12. web窗体之四则运算
  13. Web测试技术要领
  14. EOJ 3260 袋鼠妈妈找孩子
  15. Using TXMLDocument, Working with XML Nodes
  16. WORD里怎样能做到局部“分栏”就是一页里有的分有的不分
  17. mongodb副本集优先级设置
  18. php trait 变量类型为数组时 不能被父类子类同时use
  19. numpy.histogram 官方手册
  20. ios下编译opencv

热门文章

  1. protel99 se中出现许多Backup of 文件,修改过保存时,总会出现备份文件,怎么才能取消这一设置?
  2. RF/GBDT/XGBoost/LightGBM简单总结(完结)
  3. HTML页面每次打开的时候都清除页面缓存
  4. Swift自定义头视图和尾视图
  5. Nodejs中npm install 命令的问题
  6. 洛谷 P1039侦探推理
  7. vue+webpack多个项目共用组件动态打包单个项目
  8. 转-JAVA webservice之CXF 范例--http://cxshun.iteye.com/blog/1275408
  9. 性能测试-Loadrunner组件Controller一
  10. linux 下 ifcfg-eth0 配置/CentOS_minimal安装和开发环境部署