博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Object-C--->Swift之(六)函数类型
阅读量:6216 次
发布时间:2019-06-21

本文共 1446 字,大约阅读时间需要 4 分钟。

认识函数类型

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

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

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

使用函数类型

定义变量

定义变量,其类型为(Int,Int)->Int var myadd:(Int,Int)->Intfunc Add(a:Int,b:Int)->Int{    return a+b}myadd=Add   print(myadd(3,4))   //输出7当函数类型和我们定义的变量类型一致的时候我们就能够赋值成功。

函数类型作为形参类型

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

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(3,4,fn:square))//输出19   print(add(3,4,fn:cube))//输出67

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

使用函数类型作为返回值类型   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    }

转载地址:http://ndvja.baihongyu.com/

你可能感兴趣的文章
html css ui
查看>>
iOS逆向工程之Theos 锁屏下alert例子
查看>>
我的友情链接
查看>>
第三讲 配置SCCM客户端并添加角色
查看>>
Testlink配置修改
查看>>
4个强大的Linux服务器监控工具
查看>>
部署搭建 Saltstack
查看>>
关于Docker默认存储位置及Docker系统默认池存储、卷存储限制空间修改
查看>>
七牛上传小工具-Go语言版本
查看>>
MySQL 参考手册 3.3创建使用数据库
查看>>
android GridView 使用
查看>>
linux系统的启动流程
查看>>
CISCO多协议双向重分布
查看>>
JVM:垃圾回收机制
查看>>
Mac 点击dock图标显示窗口,点击关闭按钮隐藏窗口
查看>>
怎么让别人不拷走你电脑里的东西
查看>>
12.25作业
查看>>
#51CTO学院四周年# 改变
查看>>
lsof
查看>>
国内下载golang.org的包的方法
查看>>