swift 函数、函数类型及使用——swift学习(五)
其实函数我们都已经知道的差不多了。所以关于什么是函数就不再说了,今天直接用代码来看看函数的几种使用:
//自定义函数
//1.无返回值的函数
func test(name:String){}
//2.返回一个返回值
func test2(name:String)->Bool{return true}
//3.返回一个元组
func test3(name:String)->(Int,Bool){
let position = 1
let visible = false
return (position,visible)
}
print("\(test3("a"))")
//4.参数任意
func test4(nums:Int...)->Int{
var count:Int = 0
for item in nums {
count+=item
}
return count
}
print("\(test4(1,2,3,4))")
//5.在swift3.0之前,要在函数中修改参数,在函数声明的时候一定要加上var,当然加上var同样不会把实参也改变,,而只是说形参可以修改。但是在swift3.0之后,如果还是那样做的话会有警告,这时候就可以使用一个方法,就是在函数中重新定义一个变量就可以了。
var age = 22
func test5(age:Int) {
var age = age
age=age+1
}
print("\(age)")
//6.改变函数传进去的实参,这里要注意的是实参一定要是一个变量,并且必须是要取地址符。估计是因为加了inout之后,值会被改掉,所以一定要有一个地址
func test6(inout age:Int){
age+=1
}
var age6 = 22
test6(&age6)
print("\(age6)")
//7.函数类型作为参数使用,
func test7(a:Int,b:Int)->Int{
return a+b
}
func test8(test7:(Int,Int)->Int,a:Int,b:Int)->Int{
let temp = a+b
return test7(temp,a)
}
print("\(test8(test7,a:1,b:2))")
//8.函数类型为返回值,test9的返回值其实是(Int)->Int,而且扣号可以去掉的。同时我们来看看函数类型。其实很简单,函数类型就是参数加返回值类型比如一个函数的参数是两个Int,返回值是一个Int。那么它的类型就是(Int,Int)->Int。定义一个变量的时候就是let funvVarible:(Int,Int)->Int = test7。所以也有注意一下,这里初始化或者赋值的时候一定也要是参数类型和返回值类型是一样的。
func increase(intput:Int)->Int{
return intput+1
}
func reduce(intput:Int) -> Int {
return intput-1
}
func test9(test:Bool)->(Int)->Int{
return test ? increase : reduce
}
let test10 = test9(3>2)
print("\(test10(3))")
//9.内嵌函数,内嵌函数故名思意就是它是函数体内部定义的一个函数,当然它的作用域肯定也只局限于当前函数内部
func test11(test:Bool)->(Int)->Int{
func increase(intput:Int)->Int{
return intput+1
}
func reduce(intput:Int) -> Int {
return intput-1
}
return test ? increase : reduce
}
let test12 = test11(3<2)
print("\(test12(3))")
posted on 2016-05-22 17:51 hello_vzjw 阅读(111) 评论(0) 收藏 举报
浙公网安备 33010602011771号