函数相当于OC中的方法
函数格式
func 函数名(参数列表) -> 返回值类型 {
代码块
return 返回值
}
*注意
- func是关键字,多个参数列表之间可以用逗号(,)分隔,也可以没有参数
- 使用箭头“->”指向返回值类型
- 如果函数没有返回值,返回值为Void.并且“-> 返回值类型”部分可以省略
函数的使用
override func viewDidLoad() {
super.viewDidLoad()
test1() //无参数, 无返回值
let count = test2()
print(count) // 5
test3(count: 10000) //数量为:10000
let relust = test4(num: 10, num1: 20)
print(relust) //30
}
// 1.无参数, 无返回值
func test1(){
print("无参数, 无返回值")
}
// 2.无参数, 有返回值
func test2() -> Int{
return 5
}
// 3.有参数, 无返回值
func test3(count: Int) {
print("数量为:\(count)")
}
// 4.有参数, 有返回值
func test4(num: Int, num1: Int) -> Int {
return num + num1
}
额外补充
- 设置默认参数
override func viewDidLoad() {
super.viewDidLoad()
/**
Result of call to 'want(fruitsName:)' is unused
OC:调用一个方法,没有使用其返回值当时候可以,不用变量来接收。并且一个变量未被上下文使用到的时候可以用__unused修饰符修饰。
Swift:不用变量来接收返回值会爆出警告“result of call to ‘XXX’ is unused”
消除警告 在 func 定义的上方,加上 @discardableResult
*/
want(fruitsName: "苹果") //我想要吃苹果
want(fruitsName: "李子") //我想要吃李子
want() //我想要吃人参果
}
@discardableResult
func want(fruitsName: String = "人参果") -> String {
print("我想要吃\(fruitsName)")
return "我想要吃\(fruitsName)"
}
- 设置可变参数
override func viewDidLoad() {
super.viewDidLoad()
sum(num: 10,20,30,40,50) //150
}
@discardableResult
//可变参数
func sum(num: Int...) -> Int{
var result = 0
for n in num {
result += n
}
print(result)
return result
}
- 指针类型(交换值)
override func viewDidLoad() {
super.viewDidLoad()
var m = 10
var n = 20
swapNum(m: &m, n: &n)
print("m=\(m) n=\(n)") //m=20 n=10
}
func swapNum ( m : inout Int, n : inout Int){
let tempNum = m
m = n
n = tempNum
}