Swift - 31 - 常量参数, 变量参数和inout参数

//: Playground - noun: a place where people can play

import UIKit

// swift中默认情况下, 传入的参数是不可以修改的, 也就是let类型, 也就是常量参数
// 如果想修改这个参数的值, 需要在参数前加"var", 也就是变量参数
func toBinary(var num:Int) -> String // 将一个数转换为二进制
{
var result = ""
while num != 0 {
result = String(num%2) + result
num /= 2
}
return result
} var number = 69
toBinary(number)
number // 输入结果还是69, 说明函数中对变量参数的修改, 不会影响外部变量本身 // 以下两个函数也证明了, 变量参数不会影响外部变量本身(包括数组和字典)
var a = 1
func testChangeIntFunction(var a:Int)
{
a = 0
}
testChangeIntFunction(a)
a var arr = [2, 3]
func testChangeIntFunction(var a:[Int])
{
a = [3, 4]
}
testChangeIntFunction(arr)
arr /*--------------------------------------------------------------------*/ // 那么如何实现在函数内改变外部变量本身呢? 这里就要使用到另外一个关键字"inout"了
// 这样可以理解为传入的是参数的指针(也就是内存地址)
func changeEachOther(inout a:Int, inout b:Int) {
let temp = a
a = b
b = temp
} var x = 0, y = 100
print("x = \(x), y = \(y)")
changeEachOther(&x, b: &y)
print("x = \(x), y = \(y)") // swift自带的交换函数
// swap(&<#T##a: T##T#>, &<#T##b: T##T#>)

  

上一篇:iOS 10 Programming Fundamentals with Swift 学习笔记 0


下一篇:R语言-来自拍拍贷的数据探索