美文网首页
4.2函数类型与嵌套

4.2函数类型与嵌套

作者: LucXion | 来源:发表于2020-05-22 15:01 被阅读0次

开发者也可以像声明普通变量那样来声明一个函数变量,同样也可以对此变量进行赋值、调用等操作。将函数作为数据类型这种语言设计思路有强大的优势,这将允许开发者将一个函数作为另一个函数的参数或者返回值,大大增强了编程的灵活性。

var Sum :(Int,Int)->Int // 函数类型由参数和返回值决定
Sum = {(parama1:Int,parama2:Int) in // {}为闭包结构,in为闭包结构关键字
    return parama1 + parama2}
//函数作为变量、函数作为参数的使用
// 声明函数
func Sum(parama:Int...)->Int {
    var temp = 0
    for item in parama {
        temp += item
    }
    return temp
}
// 声明函数类型的变量
var addSum:(Int...)->Int
// 将函数赋值给函数类型变量
addSum = Sum
// 调用函数类型的变量
var totalNum = addSum(1,2,3,4,5)
// 将函数作为参数
func doSome(parama:(Int...)->Int) {
    print(parama(1,2))
}
doSome(parama: addSum)
// 将函数作为返回值
var addFunc:(Int,Int)->Int
func myFunc15() -> (Int,Int)->Int {
    
    return {(param1:Int,param2:Int)in
        
        return param1+param2}
}
//使用addFunc变量获取返回值
addFunc = myFunc15()
//进行调用
addFunc(10,20) // 这里跟我们之前的block回调没有关系,因为myFunc15的返回值是一个函数,所以addFunc只是一个函数,这一步仅仅是函数的调用
函数的嵌套
func myFunc16() -> (Int,Int)->Int {    
      func subFunc(param1:Int,param2:Int)->Int{        
           return param1+param2    }    
      return subFunc}

相关文章

  • 4.2函数类型与嵌套

    开发者也可以像声明普通变量那样来声明一个函数变量,同样也可以对此变量进行赋值、调用等操作。将函数作为数据类型这种语...

  • Swift 3.0学习笔记_10_函数

    函数的定义与调用, 函数的参数与返回值, 函数参数标签和参数名称, 函数类型, 嵌套函数

  • Day6 函数(Functions)

    本页包含内容:- 函数定义与调用- 函数参数与返回值- 函数参数标签和参数名称- 函数类型- 嵌套函数 ** 1、...

  • 函数

    函数 本节内容包括: 函数的定义与调用 函数的参数与返回值 函数的参数名称 函数类型 函数嵌套 函数的定义与调用 ...

  • Swift5-外行零基础入门_12-函数(下)

    函数 函数类型作为参数类型,函数类型作为返回类型,嵌套函数 函数类型 关于数据类型,我们之前已经介绍过了。现在来回...

  • iOS开发之Swift篇(6)—— 函数

    目录 版本 函数定义与调用 参数与返回值 参数标签和参数名称 函数类型 嵌套函数 版本 Xcode 11.0Swi...

  • 第四章 函数

    4.1如何调用函数 4.2调用自定义函数计算三个参数的平均值 4.3 4.4内置函数 4.5在嵌套函数中获取外部函...

  • Swift 5.1 (6) - 函数

    级别: ★☆☆☆☆标签:「iOS」「Swift 5.1」「函数」「变量参数」「函数类型」「嵌套函数」作者: 沐灵洛...

  • [Python基础]D6 循环嵌套、函数基础

    while 循环嵌套 4.1 循环嵌套 while 嵌套就是:while 里面还有 while 4.2 循环嵌套演...

  • swift基础语法(函数)

    一、函数的基本使用 二、函数的使用注意 --- 参数名 三、函数的使用注意 --- 函数类型 四、函数嵌套

网友评论

      本文标题:4.2函数类型与嵌套

      本文链接:https://www.haomeiwen.com/subject/olyqahtx.html