swift学习记录(函数--输入输出参数)
2015-12-17 14:28
519 查看
在输入输出参数之前,先说说变量参数和常量参数
变量可以修改,常量不可以修改,这是众所周知的事实。
函数中的参数,默认是 常量,所以想在函数体内修改参数的值,就会出现编译错误。所以,在定义函数时,需要将参数定义为变量
变量参数的定义方式:
定义变量参数的方法就是在参数名 前 加上 变量 修饰符 var
变量参数只能在函数体内修改,如果我们让在函数体修改的参数,在函数体外任然生效。这时我们就需要定义输入输出函数
输入输出函数定义方式:
定义函数时,在参数名前加上 inout 关键字,这样我们就定义了一个输入输出参数
代码事例:
通过没有返回值的 exchange 函数,将boyName 和 girlName 交换 。在调用函数之后再去打印boyName和girlName。发现在函数体内修改的参数,在函数体外依然生效。
需要注意的是,在调用含有输入输出参数的 函数 时,需要实参前加 & 。表示这个值可以被函数修改
注意:输入输出参数不能有默认值,不能是可变参数。如果一个参数被 inout 标记,这个参数就不能被 var 或 let 标记。
输入输出参数只是,实现函数体内修改 参数值,在函数体外依然生效的方式之一。我们还可以通过别的方式实现。例如:
变量可以修改,常量不可以修改,这是众所周知的事实。
函数中的参数,默认是 常量,所以想在函数体内修改参数的值,就会出现编译错误。所以,在定义函数时,需要将参数定义为变量
变量参数的定义方式:
定义变量参数的方法就是在参数名 前 加上 变量 修饰符 var
func sum(var num1:Int, num2:Int)->Int{ num1 = 10 return num1+num2 } print(sum(100, num2: 2)) //12
变量参数只能在函数体内修改,如果我们让在函数体修改的参数,在函数体外任然生效。这时我们就需要定义输入输出函数
输入输出函数定义方式:
定义函数时,在参数名前加上 inout 关键字,这样我们就定义了一个输入输出参数
代码事例:
var boyName = "张大三" var girlName = "李小七" func exchange(inout boy:String ,inout girl:String){ let name = boy boy = girl girl = name } exchange(&boyName, girl: &girlName) print("boyName is \(boyName) and girlName is \(girlName)") //boyName is 李小七 and girlName is 张大三
通过没有返回值的 exchange 函数,将boyName 和 girlName 交换 。在调用函数之后再去打印boyName和girlName。发现在函数体内修改的参数,在函数体外依然生效。
需要注意的是,在调用含有输入输出参数的 函数 时,需要实参前加 & 。表示这个值可以被函数修改
注意:输入输出参数不能有默认值,不能是可变参数。如果一个参数被 inout 标记,这个参数就不能被 var 或 let 标记。
输入输出参数只是,实现函数体内修改 参数值,在函数体外依然生效的方式之一。我们还可以通过别的方式实现。例如:
var boyName = "张大三" var girlName = "李小七" func exchange(boy:String ,girl:String){ girlName = boy boyName = girl } exchange(boyName, girl: girlName) print("boyName is \(boyName) and girlName is \(girlName)") //boyName is 李小七 and girlName is 张大三
相关文章推荐
- swift学习记录(函数)
- Swift版音乐播放器(简化版),swift音乐播放器
- Swift---- 可选值类型(Optionals) 、 断言(Assertion) 、 集合 、 函数
- Swift----方法 、 下标 、 继承 、 初始化 、 析构方法 、 可选链
- Swift----函数 、 闭包 、 枚举 、 类和结构体 、 属性
- Swift-----类型转换 、 嵌套类型 、 扩展 、 协议 、 访问控制
- Swift基础语法 、 元组(Tuple)
- Swift 基本概念(笔记)
- 《Swift 的数组 (Array)的声明和 数组的基本操作详解 和 元组(Tube) 的声明和使用》
- swift学习记录(跳转语句)
- swift 学习记录(分支语句)
- swift 父视图区域之外的子视图响应消息
- Swift开发教程--实现UITableView报错does not conform to prot
- 学习Swift的IOS应用的代码教程-5:让应用变的美观
- 学习Swift的IOS应用的代码教程-5:让应用变的美观
- Swift -- 结构体、类、枚举继承protocol协议
- Swift -- 语言指南--高级运算符
- Swift数据类型
- swift语言环境下用storyboard载入页面
- Swift-----类型转换 、 嵌套类型 、 扩展 、 协议 、 访问控制