常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸
常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸
常量参数和变量参数在函数中,参数默认都是常量。如果想要改变一个函数参数的值,会引起程序错误。如以下代码 常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸:
func fun(num:Int){
num=num+1
println(num)
}
常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸在此代码中,函数参数num默认是一个常量,而常量的值是不能改变的,所以导致程序出现如下的错误信息
Cannot assign to ‘let’ value ‘num’
如果想要对参数进行修改,必须要使用一个类似于变量的参数,Swift称之为变量参数。变量参数的定义就是在参数名前使用一个var关键字。以下的代码就是使用了变量参数实现了字符串右对齐的功能。代码如下 常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸:
import Foundation
func alignRight(var string: String, count: Int, pad: String) {
let amountToPad = count – countElements(string) //获取输入”*”的个数
//遍历
for _ in 1…amountToPad {
string = pad + string
}
println(string)
}
let originalString1 = “swift”
alignRight(originalString1, 10, “*”)
let originalString2 = “Hi”
alignRight(originalString2, 10, “*”)
let originalString3 = “”
alignRight(originalString3, 10, “*”)
运行结果如下所示:
*****swift
********Hi
**********
Program ended with exit code: 0
注意:变量参数只能存在于函数调用的生命周期中。
7.4.7 输入-输出参数 常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸
以上所讲的参数只可以在函数本身内改变。例如以下的代码,想要实现对a和b数值的交换。代码如下:
import Foundation
func swapTwoInt(var number1: Int, var number2: Int) {
//实现两个整数的交换
let temp = number1
number1 = number2
number2 = temp
println(“函数体内:a=\(number1)”)
println(“函数体内:b=\(number2)”)
}
var a=2
var b=3
println(“交换前”)
println(“a=\(a)”)
println(“b=\(b)”)
println(“交换后”)
swapTwoInt(a, b)
println(“a=\(a)”)
println(“b=\(b)”)
运行结果如下所示:
交换前
a=2
b=3
交换后
函数体内:a=3
函数体内:b=2
a=2
b=3
Program ended with exit code: 0
在运行结果中可以看到,a和b的值可在函数本身内实现了交换。如果开发者想用一个函数来修改参数的值,并且想让这些变化在函数调用后仍然有效。这时,需要定义输入-输出参数。它的定义是通过在参数名前加入inout关键字。其语法形式如下 常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸:
func 函数名(inout 参数名: 数据类型, ……) {
…
}
输入-输出参数都有一个传递给函数的值,将函数修改后,再从函数返回来替换原来的值。其调用形式如下:
函数名(&参数, ……)
其中,参数前面加上&操作符。
【示例7-13】以下的代码使用输入输出参数实现a和b数值的交换功能。代码如下:
import Foundation
func swapTwoInt(inout number1: Int, inout number2: Int) {
//实现两个整数的交换
let temp = number1
number1 = number2
number2 = temp
}
var a=2
var b=3
println(“交换前”)
println(“a=\(a)”)
println(“b=\(b)”)
println(“交换后”)
swapTwoInt(&a, &b)
println(“a=\(a)”)
println(“b=\(b)”)
运行结果如下:
交换前
a=2
b=3
交换后
a=3
b=2
Program ended with exit code: 0
注意:如果一个函数的参数是输入-输出参数,在调用时,必须在参数前加一个“&”符号,否则程序就会出现错误。如以下代码,在调用具有输入输出得函数时,在参数前没有添加“&”符号。代码如下 常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸:
import Foundation
func swapTwoInt(inout number1: Int, inout number2: Int) {
……
}
var a=2
var b=3
……
swapTwoInt(a, b)
……
由于在函数,调用时没有在参数前添加“&”符号,导致程序出现了以下的错误:
Passing value of type ‘Int’ to an inout parameter requires explicit ‘&’ 常量参数和变量参数输入输出参数Swift 1.1语言快速入门大学霸
Comments are closed.