Swift函数类型

函数可以作为一种类型使用,作为类型与其它数据类型没有区别:

有如下3个函数的定义:

(1)func rectangleArea(width : Double, height : Double ) -> Double {

let area = width * height

return area

}

(2)func triangleArea(bottom : Double, height : Double ) -> Double {

let area = 0.5 * bottom *  height

return area

}

(3)func sayHello(){

println("Hello World")

}

第一个和第二个函数的返回类型都是(Double,Double) -> Double,第三个函数返回的类型为() ->()

函数作为参数类型使用:可以把函数的类型作为另一个函数的返回类型使用:

示例:

func rectangleArea(width : Double, height : Double ) -> Double {

let area = width * height

return area

}

func triangleArea(bottom : Double, height : Double ) -> Double {

let area = 0.5 * bottom *  height

return area

}

func getArea(type : String) -> (Double,Double) ->Double {

var returnFunction :(Double,Double) -> Double

switch type {

case "rect":

returnFunction = rectangleArea

case "tria" :

return triangleArea

default:

returnFunction = rectangleArea

}

return returnFunction

}

var area = getArea("tria")

println("TriangleArea:\(area(20,30))")

var area = getArea("rect")

println("TriangleArea:\(area(20,30))")

可以把函数类型作为其它函数的参数类型使用:

示例:

func rectangleArea(width : Double, height : Double ) -> Double {

let area = width * height

return area

}

func triangleArea(bottom : Double, height : Double ) -> Double {

let area = 0.5 * bottom *  height

return area

}

func getAreaByFunc(funcName : (Double,Double) -> Double, a: Double,b: Double) -> Double {

var area = funName(a,b)

return area

}

var result :Double = getAreaByFunc(rectangleArea,20,30)

时间: 2024-12-17 01:21:24

Swift函数类型的相关文章

浅谈swift中的函数类型和闭包

在讲swift的函数类型之前,我们先回忆一下我们以前学的定义一个swift的函数 func add(a: Int,b: Int) -> Int { return a + b } 好了, 我们开始我们函数类型的讲解 上面这个函数的类型是(Int ,Int)->Int 使用函数类型 我们都知道, 在swift中 , 函数类型就像其他数据类型一样,也就意味着我们可以给一个函数的常量或者是变量赋值 var f2: (Int,Int)-> Int = add f2(2,3) //结果为5 好了,接

swift学习之函数类型

var someInt: Int = 7 Int 就是表示someInt的类型,同理,这个Int也可以换成函数类型,所以也可以像其他类型那样使用函数类型 函数类型主要由三种用途:(一)就是上面说的了 (二)作为参数(三)作为返回类型 再加一个,就是函数也可以嵌套(nested) let math: (Int , Int) -> Int = addTwoInts printMathResult(math, a: 9, b: 9) //printMathResult(math, 9, 9) func

Swift - 32 - 函数类型

//: Playground - noun: a place where people can play import UIKit func add(a:Int, b:Int) -> Int { return a + b } // 其中, (Int, Int) -> Int 就是显式的声明函数类型 let anotherAdd:(Int, Int) -> Int = add anotherAdd(3, 4) /*--------------------------------------

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

Swift函数

函数定义 使用 func 定义一个函数.调用函数使用他的名字加 上小括号中的参数列表.使用 -> 分隔参数的名字和 返回值类型. 函数声明: func greet(name: String, day: String) -> String { return "Hello \(name),today is \(day)." } 函数调用:greet("Bob", "Tuesday") 无返回值函数 func sayGoodbye(pers

Swift函数和闭包

函数 Swift 使用func关键字声明函数: 1 func greet (name: String, day: String) -> String { 2 return "Hello \(name), today is \(day)." 3 } 4 greet ("Bob", "Tuesday") 通过元组(Tuple)返回多个值: 1 func getGasPrices () -> (Double, Double, Double)

4 .Swift函数|闭包

在编程中,我们常把能完成某一特定功能的一组代码,并且带有名字标记类型叫做函数,在C语言中,我们知道函数名就是一个指针,它指向了函数体内代码区的第一行代码的地址,在swift中也具有同样的功效. 在Swift中函数的表现形式如下: 1. func 函数名(参数名1:参数类型,参数名2,参数类型)->返回值类型 {函数的实现部分} func sayHello()->Void { print("hello world") } //有参数,有返回值, func sayHello2(

swift基本类型

一.数字类型: Swift数字类型之间的转换Swift是一个安全的语言,对于类型的检查非常严格,不同类型之间不能随便转换. 1.整型之间的转换:在C和Objective-C等其他语言中,整型之间有两种方法 从小范围数到大范围数转换是自动的: 从大范围数到小范围数需要强制转换,有可能造成数据精度的丢失. 而在Swift中这两种方法是行不通的,我们需要通过一些函数进行显示地转换,代码如下: let start:uint8=10; let end:uint16=20: let total=start+

Swift 函数新特性

特性一:函数可以穿出不固定的同一种类型的参数(参数的个数不固定) example: “func sumOf(numbers: Int...) -> Int { var sum = 0 for number in numbers { sum += number } return sum}sumOf()sumOf(42, 597, 12) 特性二:返回元祖类型数据(元祖:是一种多元化的数据) example: “func calculateStatistics(scores: [Int]) ->