swift函数

OC函数
-(返回值类型) 方法名 (参数){
函数的实现部分
}

swift中函数的关键字 叫做 func
func 函数名(参数) -> 返回值类型{
实现部分}
函数的声明与实现部分 ,
func 问候语(name:String,day:String)->String{
return “hello ,(name) ,today is (day)”
}
函数调用
print(问候语(“Lisa”, “星期三”))

1. 元组作为函数返回值

传入一个Int 型的数组,返回最大值,最小值,和、

func 计算(var 数组:[Int])->(max:Int ,min:Int ,sum :Int){
    var max = 数组[0]
    var min = 数组[0]
    var sum = 0
    for item in 数组{
        if max < item{
            max = item
        }
        if min > item{
            min = item
        }
        sum += item
    }
    return (max,min,sum)
 }

调用这个函数

let 计算结果 = 计算([10,22,54,23,13,67])
print(计算结果)
print("max = \(计算结果.max),min = \(计算结果.min) ,sum = \(计算结果.sum)")

2. swift 函数中可以嵌套函数

func returnFifteen() ->Int{
    var ten = 10
    func addFive(){
        ten += 5
    }
    addFive()
    addFive()
    addFive()
    return ten
}
print(returnFifteen())

3.函数作为返回值的情况 ( 返回函数的参数列表 ->返回函数的返回值)

func makeFunc()->(Int->Int){
    func addFive(a:Int)->Int{
        return a+5
    }
    return addFive
}
var func1 = makeFunc()
print(func1(12))

4.实现makeComputerFunc 这个函数,传入一个 +-*/ 。返回值返回一个函数,调用函数传入两个值,然后返回计算结果

func makeComputerFunc(operation:String)->((Int,Int) -> Int){
    switch operation{
    case "+":
        func add(num1:Int,num2 :Int)->Int{
            return num1 + num2
        }
        return add
    case "-":
    func sub(num1:Int,num2 :Int)->Int{
        return num1 - num2
    }
    return sub
    case "*":
    func multi(num1:Int,num2 :Int)->Int{
        return num1 * num2
    }
    return multi
    case "/":
    func div(num1:Int,num2 :Int)->Int{
        return num1 / num2
    }
    return div
    default:
    func none(num1:Int,num2 :Int)->Int{
        return 0
    }
    return none
    }
}
//在这里func3   ==  sub  这个函数
var func3=makeComputerFunc("+")
print(func3(20,12))

5. 函数作为参数的情况。

第一层函数,参数为一个数组。和一个比较的函数。 返回值是一个bool类型。
比较函数 ,判断第一层函数传入的数组中是否有大于10的数, 如果大于10 返回true ,如果小于10 返回false

func hasAnyMatches(numbers :[Int],condition :(Int)->Bool) ->Bool{
    for num in numbers{
        if condition(num){
            return true
        }
    }
    return false
}
func moreThanTen (num:Int) -> Bool{
    if num < 1{9
        return true
    }else{
        return false
    }
}
print(hasAnyMatches([2,11,10,10,5,5,3], moreThanTen))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值