func whoismine(name:String,age:Float)->String{
return "my name is \(name),my age is \(age)."
}
let aa=whoismine("DLG", age: 100)
print(aa) //my name is DLG,my age is 100.0.
func StatisticScore(scores : [Float])->(min:Float,max:Float,sum:Float){
var min=scores[0]
var max=scores[0]
var sum :Float=0
for myscore in scores{
if myscore > max{
max=myscore
} else if myscore < min{
min = myscore
}
sum += myscore
}
return (min, max, sum)
}
//元组是多个值组合而成的复合值。元组中的值可以是任意类型,而且每一个元素的类型可以是不同的。
let statistic = StatisticScore([12,50,100,33,60])
print(statistic.min)//12.0
print(statistic.max)//100.0
print(statistic.sum)//255.0
print(statistic.2)//255.0
func sum(numbers:Int...)->Int{
var mysum=0
for number in numbers{
mysum += number
}
return mysum
}
//函数可以带有可变个数的参数,这些参数在函数内表现为数组的形式:
let allsum:Int = sum(24,42,24)
print(allsum)//90
func QTTest()->Int{
var y=10
func add(){
y+=10
}
add()
return y
}
//函数可以嵌套。被嵌套的函数可以访问外侧函数的变量
let a = QTTest()
print(a) //20
func QTTest2()->(Int ->Int){
func add(var number:Int)->Int{
return ++number
}
return add
}
//函数可以作为另一个函数的返回值
let myfunc = QTTest2()
let myresult=myfunc(7)
print(myresult) //8
func hasAnyMatchs(list:[Int],condition:Int ->Bool)->Bool{
for item in list{
if condition(item)
{
return true
}
}
return false
}
func mycondition(number: Int)->Bool{
return number > 66
}
//函数也可以当做参数传入另一个函数。
let hasyournum = hasAnyMatchs([12,50,80,40], condition: mycondition)
print(hasyournum) //true