Object-C--->Swift之(六)函数类型

简介:

认识函数类型

每个函数都有特定的函数类型

函数类型是由函数的形参类型、->和返回值类型组成。

例如:
    func Add(a:Int,b:Int){
    ...
    }
该函数的函数类型为(Int,Int)->Void或者(Int,Int)->()
func Add()->Int{
   ...
}
该函数的函数类型为()->Int
func Add(){
    ...
}
该函数的函数类型为()->()或者()->Void

func Add(a:Int,b:Int)->Int{
    ...
}

  该函数的函数类型为(Int,Int)->Int
AI 代码解读

使用函数类型

定义变量

定义变量,其类型为(Int,Int)->Int
 var myadd:(Int,Int)->Int
func Add(a:Int,b:Int)->Int{
    return a+b
}
myadd=Add
   print(myadd(3,4))
   //输出7


当函数类型和我们定义的变量类型一致的时候我们就能够赋值成功。
AI 代码解读

函数类型作为形参类型

有些时候我们写一个函数,这个函数的大部分逻辑是十分确定的,但某些处理逻辑是无法确定的需要根据具体情况进行动态的改变。这个时候我们可以在函数中定义函数类型的形参,这样在调用该函数的时候传入不同的函数作为参数,从而动态的改变函数的功能。

   func add(var a:Int,var b:Int,fn:(Int)->Int)->Int
    {
   return a+fn(b)
     }
    //不对b进行改变
   funcOnlyb(val :Int)->Int
    {
   return b;
     }
//对b进行平方改变
   func square(val:Int)->Int
{
    return b*b
 }
    对b进行立方改变
func cube (val:Int)->Int
   {
      return b*b*b
    }
    print(add(3,4,fn:Onlyb))//输出7
   prin(add(34,fn:square))//输出19
   print(add(3,4,fn:cube))//输出67
AI 代码解读

分析代码:我们在上面程序中,有两个变量的值是不变的,但对第二个变量进行变化是动态的,可能需要平方操作或者立方操作,也可能不需要任何操作。

使用函数类型作为返回值类型
   func squar (val:Int)->Int
   {
    return  val*val
    }
   func cube (val:Int)->Int
    {
     return  val*val*val
    }
   func Onlyb (val:Int)Int
   {
    return b
    }
  //注意返回值类型为(Int)->Int
    func Math(#type:String)->(Int)->Int
   {
     switch(type)
  {
   case"square":
    return square
    case "Onlyb":
    returnOnlyb
    case "cube":
   return cube
   default:
    print("输入函数错误呀")
  }
     var math=Math(type:"cube")
    print(math(5))//输出125
    }
AI 代码解读
目录
打赏
0
0
0
0
3
分享
相关文章
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
99 2
Swift代码审查的关键点及最佳实践,涵盖代码风格一致性、变量使用合理性、函数设计、错误处理、性能优化、安全性、代码注释等方面,旨在提升代码质量和项目管理水平
本文深入探讨了Swift代码审查的关键点及最佳实践,涵盖代码风格一致性、变量使用合理性、函数设计、错误处理、性能优化、安全性、代码注释等方面,旨在提升代码质量和项目管理水平。通过实际案例分析,展示了如何有效应用这些原则,确保代码的高可读性、可维护性和可靠性。
80 2
|
5月前
|
Swift 泛型-扩展泛型类型
Swift 泛型-扩展泛型类型
61 2
|
5月前
|
Swift 泛型-类型约束
Swift 泛型-类型约束
53 1
Swift 函数
10月更文挑战第27天
36 1
Swift 可选(Optionals)类型
10月更文挑战第24天
56 2
|
6月前
|
通过 type 和 object 之间的关联,进一步分析类型对象
通过 type 和 object 之间的关联,进一步分析类型对象
103 3
苹果iOS新手开发之Swift中实现类似Kotlin的作用域函数
Swift可通过扩展实现类似Kotlin作用域函数效果。如自定义`let`, `run`, `with`, `apply`, `also`,增强代码可读性和简洁性。虽无直接内置支持,但利用Swift特性可达成相似功能。
106 7

热门文章

最新文章

相关课程

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等