swift -inout关键字
一般参数仅仅是在函数内可以改变的,当这个函数执行完后变量就会被销毁,不会有机会改变函数以外的变量,那么我们就会产生一个疑问,我们可不可以通过一个函数改变函数外面变量的值呢?答案是肯定的,这时我们就需要用到inout关键字了
声明函数时,在参数前面用inout修饰,在函数内部实现改变外部参数,注意,这里只能传入变量,不能传入常量和字面量,因为这些是不能变的一旦定义,当我们传入的时候,在变量名字前面用&符号修饰表示,传递给inout参数,表明这个变量在参数内部是可以被改变的
注意:inout修饰的参数是不能有默认值的,有范围的参数集合也不能被修饰,另外,一个参数一旦被inout修饰,就不能再被var和let修饰了
- override func viewDidLoad() {
- super.viewDidLoad()
- var someInt = 7
- var anotherInt = 107
- swapTwoInts(&someInt, b: &anotherInt)
- print("someInt is \(someInt),anotherInt is \(anotherInt)")
- }
- func swapTwoInts(inout a:Int , inout b:Int) {
- let temp = a
- a = b
- b = temp
- }
转载于:https://www.cnblogs.com/xiyangxixia/p/8432992.html
swift -inout关键字相关推荐
- Swift - final关键字的介绍,以及使用场景
final关键字在大多数的编程语言中都存在,表示不允许对其修饰的内容进行继承或者重新操作.Swift中,final关键字可以在class.func和var前修饰. 通常大家都认为使用final可以更好 ...
- Swift - defer关键字(推迟执行)
在一些语言中,有try/finally这样的控制语句,比如Java. 这种语句可以让我们在finally代码块中执行必须要执行的代码,不管之前怎样的兴风作浪. 在Swift 2.0中,Apple提供了 ...
- Swift标识符和关键字
任何一种计算机语言都离不开标识符和关键字,下面我们将详细介绍Swift标识符和关键字. 标示符 标识符就是给变量.常量.方法.函数.枚举.结构体.类.协议等指定的名字.构成标识符的字母均有一定的规范, ...
- Swift学习笔记 In-out形参
在Swift中,变量形参只能在函数本身内改变.如果你想让函数改变形参值,并想要在函数调用结束后保持形参值的改变,那你可以把形参定义为 in-out 形参.通过在形参定义的开始添加 inout 关键字来 ...
- Swift 中的关键字详解
转载自:https://www.cnblogs.com/liYongJun0526/p/7522130.html 要学习Swift这门语言,就必须先了解Swift的关键字及对应的解释.这里就列一下在S ...
- swift之inout
swift中需要对参数只进行修改,需要用到inout 关键字,调用函数时加& func swapTwoInts(_ a:inout Int,_ b: inout Int){let tempor ...
- 《从零开始学Swift》学习笔记(Day5)——我所知道的标识符和关键字
Swift 2.0学习笔记(Day5)--我所知道的标识符和关键字 原创文章,欢迎转载.转载请注明:关东升的博客 好多计算机语言都有标识符和关键字,一直没有好好的总结,就是这样的用着,现在小 ...
- swift_038(Swift之guard关键字(守护))
Swift - guard关键字(守护) guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不同的是,guard语句只会有一个代码块,不像if语句可 ...
- Swift和Java在函数(method/方法)方面的比较
1. 函数是用来完成特定任务的独立的代码块.Swift中函数的使用比Java中更灵活,在 Swift 中,可以把函数当做别的函数的参数,也可以从其他函数中返回函数.函数的定义可以写在在其他函数定义中, ...
- Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数
Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4 为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift ...
最新文章
- SAP MM 物料主数据MRP2 视图’Minimum Lot Size’字段
- 华为鸿蒙系统新机发布时间,华为鸿蒙OS发布会定档,或将有多款新机亮相
- UICountingLabel实现数字变化的动画效果-b
- php写poc,xray写POC踩坑
- 如何有效的在 LINQ 查询中处理异常?
- Js 枚举定义Layer Icon
- 博客迁移至“零一积流|it-refer.com”
- python 3.28 第三章 函数嵌套/名称空间//内置名称空间/全局名称空间/局部名称空间/作用域/函数对象/闭包函数。...
- Lync 客户端功能对比之IM功能
- 使用Python和Perl绘制北京跑步地图
- Wireshark实战分析之IP协议(一)
- python编码无法使用turtle库_使用Turtle库教Python
- html怎么把网址设为首页,怎样让网站设为首页和加入收藏
- 02 Jmonkey3.2.0+Nifty1.4.2实现GUI
- Tomcat传url地址中的特殊字符无法识别问题
- 南邮-云计算技术与大数据期末考试(知识点总结二)
- 在NBMA网络中配置OSPF
- NotePad++ 添加HEX-Editor插件
- 启动Spring项目报错,Springboot启动报错 Disconnected from the target VM 解决过程
- JavaPoet的使用指南
热门文章
- chrome老版本_技术周刊 2019-08-06:Chrome 又隐藏了 www
- JavaScript之JSON详解
- ios12后,获取不到WIFI(SSID)相关信息
- 转(static final 和final的区别)
- Python 中的 if __name__ == '__main__'
- 【Vue源码】Vue中DOM的异步更新策略以及nextTick机制
- iOS 应用状态详解
- 利用C++不使用递归,循环和goto,打印1到100 的某一答案分析
- Windows Registry
- (转)程序员如何快速准备面试中的算法