函数使用
内部参数和外部参数
- 在函数内部可以看到的参数,就是内部参数;
- 在函数外面可以看到的参数,就是外部参数;
- 默认情况下,从第二个参数开始,参数名称既是内部参数也是外部参数;
- 如果第一个参数也想要有外部参数,可以设置标签:在变量名前加标签即可;
- 如果不想要外部参数,可以在参数名称前加
_
;
// 默认情况下,从第二个参数开始,参数名称既是内部参数也是外部参数
func calculate_one(num1 : Int, num2 : Int, num3 : Int) -> Int {
return num1 * num2 * num3
}
let result_one = self.calculate_one(num1: 1, num2: 2, num3: 3)
print("--->> calculate_one: \(result_one)")
打印:
--->> calculate_one: 6
// 如果第一个参数也想要有外部参数,在变量名前加标签即可,如果不想要,在参数名前加 _
func calculate_two(myNum1 num1 : Int, _ num2 : Int, num3 : Int) -> Int {
return num1 * num2 * num3
}
let result_two = self.calculate_two(myNum1: 4, 5, num3: 6)
print("--->> calculate_two: \(result_two)")
打印:
--->> calculate_two: 120
// 方法的重载:方法名称相同,但是参数不同,可以称之为方法的重载
func calculate_three(num1: Int, _ num2 :Int) -> Int {
return num1 * num2
}
let resutl_three = self.calculate_three(num1: 7, 8)
print("--->> calculate_three: \(resutl_three)")
打印:
--->> calculate_three: 56
默认函数
若没有传入具体参数,可以使用默认参数。
func makecoffee(type :String = "卡布奇诺") -> String {
return "制作一杯\(type)咖啡。"
}
print(makecoffee(type: "拿铁"))
print(makecoffee())
打印:
制作一杯拿铁咖啡。
制作一杯卡布奇诺咖啡。
可变参数
函数的参数个数可以不确定,但必须是相同类型,在参数类型名后面加入(…)来指示这是可变参数
func sum(numbers:Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total
}
let three = sum(numbers: 100.0, 20, 30)
print("---> 3个数之和:\(three)")
let two = sum(numbers: 30, 80)
print("---> 2个数之和:\(two)")
打印:
---> 3个数之和:150.0
---> 2个数之和:110.0
引用类型(指针传递)
默认情况函数的参数是值传递,如果想改变外面的变量,则需要传递变量的地址,swift 提供 inout关键字就可以实现。注意:必须是变量
func swap2( m : inout Int, n : inout Int) {
let temp = m
m = n
n = temp
print("函数内的值:m:\(m), n:\(n)")
}
var m = 10
var n = 20
swap2(m: &m, n: &n)
print("---->>> 调用后的值:m:\(m), n:\(n)")
打印:
函数内的值:m:20, n:10
---->>> 调用后的值:m:20, n:10
网友评论