swift的函数

这里定义了两个函数,第二个个有参,而且有返回值,返回值用->来分开,第一个是一个普通的函数,没参没返回值。

let a: Int = 5;

func test(){
    print("asdfa");
}
//调用
test() func test1(a: Int)
->Int { return 1 }
//调用
test1(5)

有常量,没有固定参数的函数,参数可变用... 给默认值直接=某个值

//1.有默认值的情况,参数统统都放在后面(参数没有变量的)
//2.调用时参数顺序,尽量与声明函数时的顺序一样

func add(initNum: Int = 0,numbers:Int...)->Int {
    var totals = initNum
    for num in numbers {
        totals += num
    }
    return totals
}


参数是变量,参数是一个相当指针的,引用参数

//默认情况,其参数是常量
func vtest( var a: Int) ->Int{
   ///
  
   return (++a)
}
var m = 6
let result = vtest(m)
m

func vtest2( inout a: Int) ->Int{
   ///
   a++
   return a
}
vtest2(&m)
m


函数是一等公民,这意味着可以作为另个的返回值。这里返回的是函数里的函数的返回值 

func makeIncrementer() -> (Int -> Int) { 
func addOne(number: Int) -> Int { 
return 1 + number 
} 
return addOne 
} 
var increment = makeIncrementer() 
increment(7)

函数 也可以当做参数传入另一个函数。

这里将lessThanTenchua这个函数 传入函数hasAnyMatches找出小于10的数

func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool { 
for item in list { 
if condition(item) { 
return true 
} 
} 
return false 
} 
func lessThanTen(number: Int) -> Bool { 
return number < 10 
} 
var numbers = [20, 19, 7, 12] 
hasAnyMatches(numbers, lessThanTen)
原文地址:https://www.cnblogs.com/kangniuniu/p/4928505.html