美文网首页
Swift学习之函数类型

Swift学习之函数类型

作者: 千伞万伞 | 来源:发表于2019-11-11 18:17 被阅读0次

基本的函数定义及调用

//函数带有默认参数值,并且需要传入两个Int类型的参数,返回一个Int类型,
func testWithDeafultValue(value1:Int,myDeafultValue:Int = 27) -> Int
{
    let a:Int = (value1 + myDeafultValue)
    print(String(a) + "带有默认参数")
    return a
}
testWithDeafultValue(value1: 1) // 28带有默认参数
testWithDeafultValue(value1: 1, myDeafultValue: 2) // 3带有默认参数

带有函数类型的参数的函数定义及调用

示例一

// 将无参数且无返回值的函数类型赋给变量 a
var fy:() -> Void = {() -> Void in
    print("我是alpha")
}
print(fy) // (Function)
print(type(of: fy)) // () -> ()

// 定义一个方法,参数类型指定为一个函数类型,该函数类型为无参数,无返回值
func myVoidTest(param: () -> Void)
{
    // 调用传入的函数
    param()
}
/** 调用上面的方法 */
// 方式一
myVoidTest(param: fy) // 我是alpha
// 方式二
myVoidTest {
    print("我是瑞克") // 我是瑞克
}
// 方式三
myVoidTest(param: {() -> Void in
    print("我是卡妈") // 我是卡妈
})

示例二

// myTest 的参数是一个函数类型的参数,该函数类型参数的参数是Int类型,无返回值
func myTest(param:(Int) -> Void)
{
    // 这里调用传入的函数,调用时给到参数为10
    param(10)
}
// 调用的时候传入一个符合myTest的参数类型的函数类型参数
myTest { (value:Int) -> Void in
    print(value) // 10
}
myTest { (value:Int) in
    print(String(value * 2) + " " + "这是有参数无返回值的时候的简写") // 20 这是有参数无返回值的时候的简写
}
myTest { (value) in
    print(String(value * 4) + " " + "这是有参数无返回值的时候的简写") // 40 这是有参数无返回值的时候的简写
}
示例三
func testWithPara(param:(Int,Int) -> Int)
{
    let a:Int = param(6,3)
    print(String(param(10,a)) + "匿名函数")
}
testWithPara(param: {(value1:Int,value2:Int) -> Int in
    return value1 * value2 // 可以省略return.
}) // 结果为180匿名函数
// $0,代表第一个参数,
testWithPara(param: {return $0 + $1}) // 结果为19匿名函数
testWithPara(param: {$0 / $1}) // 结果为5匿名函数
/** 来一段小插曲 */
var a:Int = 10
var b:Int = 3
var c:Int?
c = a / b
print(c!)
// 如果将testWithPara方法里的let a:Int = param(6,3)改为let a:Int = param(2,3),程序会报错的,因为0不能做除数呀😝

示例四

我们把文首的定义的那个简单的方法当做示例三方法的参数

testWithPara(param: testWithDeafultValue(value1:myDeafultValue:)) 
/**
打印结果为(注意打印顺序呦):
4带有默认参数
14带有默认参数
14匿名函数 
*/

// 考虑到testWithDeafultValue这个方法里含有一个默认参数,那么我们能不能省略掉呢.
//当然这样是不行的,如果有一个方法和其同名,且只有一个参数,那去找哪个selector呢
testWithPara(param: testWithDeafultValue(value1:))

相关文章

  • Swift学习之函数类型

    基本的函数定义及调用 带有函数类型的参数的函数定义及调用 示例一 示例二 示例三 示例四 我们把文首的定义的那个简...

  • Swift学习笔记(二)

    Swift函数 Swift函数包含参数类型和返回值类型 函数定义 Swift使用关键字func定义函数。 函数定义...

  • iOS开发 - 「Swift 学习」Swift 函数(函数定义、

    Swift 函数 Swift 函数包含了参数类型及返回值类型: 函数声明: 告诉编译器函数的名字,返回类型及参数 ...

  • Swift学习: 函数类型

    函数类型:类似函数指针(还有指向对象指针) 1.函数类型定义:(参数类型1,参数类型2...)->返回值2.是一种...

  • 8 函数类型——《Swift3.0从入门到出家》原创连载

    8 函数类型——《Swift3.0从入门到出家》 函数类型 Swift语言中每一个函数都有它特定的数据类型,称其为...

  • Swift编程七(函数)

    案例代码下载 函数 Swift中的每个函数都有一个类型,由函数的参数类型和返回类型组成。像Swift中的任何其他类...

  • iOS开发 - 「Swift 学习」Swift 函数(函数类型定

    Swift 函数类型及使用 函数都有特定的函数类型,由函数的参数类型及返回类型组成 函数定义 使用关键字 func...

  • swift 函数

    Swift 函数 函数声明: 告诉编译器函数的名字,返回类型及参数。 函数定义: 提供了函数的实体。Swift 函...

  • 每天学一点Swift----函数(二)

    三.函数类型 1. Swift的每个函数都有类型的,函数类型由函数的形参列表,返回值类型组成。 2.使用函数类型定...

  • Swift4.2_函数

    官网链接 Swift中的每个函数都有一个类型,由函数的参数类型和返回类型组成。 您可以像Swift中的任何其他类型...

网友评论

      本文标题:Swift学习之函数类型

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