《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用

原创文章,欢迎转载。转载请注明:关东升的博客

参数的传递引用

类是引用类型,其他的数据类型如整型、浮点型、布尔型、字符、字符串、元组、集合、枚举和结构体全部是值类型。

有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供的inout关键字就可以实现。看下面的一个示例:

func increment(inoutvalue:Double, amount:Double = 1.0) {
    value += amount
}
 
var value : Double = 10.0
 
increment(&value)
print(value)
 
increment(&value,amount:100.0)
print(value)

代码increment(&value)是调用函数increment,增长量是默认值,其中&value(在变量前面加&符号,取出value地址)是传递引用方式,它在定义函数时,参数标识与inout是相互对应的。

代码increment(&value,amount:100.0)也是调用函数increment,增长量是100.0。

上述代码输出结果如下:

11.0

111.0

欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 更多精品iOS、Cocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php

时间: 2024-12-14 19:35:37

《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用的相关文章

Swift 2.0学习笔记(Day 20)——函数中参数的传递引用

原创文章,欢迎转载.转载请注明:关东升的博客 参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供的inout关键字就可以实现.看下面的一个示例: func increment(inout value:Double, amount:Double = 1.0) { value += amount } var value : Double = 10.0

swift学习笔记之—自定义函数的规则说明

原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_517.html 1,无返回值的函数 func test(name:String){ } 2,返回一个返回值 func test(name:String) -> Bool{ return true } 3,返回由多个值组成的复合返回值 func test(name:String) -> (Int,Bool){ var position = 1 var v

Python学习笔记五,函数及其参数

在Python中如何自定义函数:其格式为 def 函数名(函数参数): 内容 交互模式下编写函数完毕按两次回车返回>>> pass作为函数为空函数的占位符(她的意思是什么都不做),也就是说没想好写什么函数,先用pass占位,然后先让程序跑起来: 数据类型检查可以用内置函数isinstance(object,calssinfo)实现:如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True.如果object不是一个给定类型的的对

js函数中参数的传递

先看一道JS的笔试题: var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p); 答案是{name:xiaoming,age24}: 在JavaScript中函数参数默认为引用类型. 在阅读本章节之前建议参阅一下两章节:1.值类型可以参阅javascript

python函数中参数的传递

Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Java的引用类型是这样,基本类型按值传递)共享传参是指函数的各个形式参数获得实参中各个引用的副本:也就是说,函数内部的形参是实参的别名(alias)这种方案的结果是,函数可能会修改作为参数传入的可变对象,但是无法修改那些对象的标识(即不能把一个对象替换为另一个对象. 1 >>> def fun(num,l,d): 2 ... nu

C#学习笔记二(函数高级参数)

int[] b = { 1, 2, 3, 4, 5 }; int max; int min; int sum; int avg; OutTest(b,out max,out min,out sum,out avg); Console.WriteLine("最大:{0},最小:{1},总和:{2},平均:{3}",max,min,sum,avg); Console.ReadKey(); /// <summary> /// 用来返回多个参数的测试函数,使用OUT参数 /// &

《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:

<从零开始学Swift>学习笔记(Day 57)--Swift编码规范之注释规范:文件注释.文档注释.代码注释.使用地标注释 原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 文件注释 文件注释就在每一个文件开头添加注释,文件注释通常包括如下信息:版权信息.文件名.所在模块.作者信息.历史版本信息.文件内容和作用等. 下面看一个文件注释的示例: /* Copyright (C) 201

关东升的《从零开始学Swift》 即将出版

大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版<从零开始学Swift> <从零开始学Swift>将在<Swift开发指南>第1版的基础上添加Swift2.0的内容,同时摒弃第1版的一些不合理的内容,使得本书更加适合Swift开发者.我将连续发一些<从零开始学Swift>的学习笔记,有兴趣者,可以看一下. 附<从零开始学Swift> 此书目录: 第1章 准备起航1.1 本书约定1

Swift学习笔记(4)--字符串及基本使用

String是例如"hello, world","海贼王" 这样的有序的Character(字符)类型的值的集合,通过String类型来表示. Swift 的String类型与 Foundation NSString类进行了无缝桥接.如果您利用 Cocoa 或 Cocoa Touch 中的 Foundation 框架进行工作.所有NSString API 都可以调用您创建的任意String类型的值.除此之外,还可以使用本章介绍的String特性.您也可以在任意要求传