美文网首页
Swift语言中函数

Swift语言中函数

作者: 玻璃瓶外的水 | 来源:发表于2016-05-27 15:47 被阅读13次

swift语言中函数是一个重要的概念,今天主要谈论下函数的相关知识:

函数基础:

先看一段代码:


func printName() {

print("My name is Galloway")

}

printName()

这段代码前三行是声明了一个函数,最后一行是执行这段函数,声明函数的时候使用关键字func,之后是函数名,在花括号中是整个函数体。

下面再看一段代码:

func printMultipleOf(multiplier: Int, andValue: Int) {

print("\(multiplier) * \(andValue) = \(multiplier * andValue)")

}

printMultipleOf(4, andValue: 2)

很明显,这段代码中也声明了一个函数,但区别是这个函数带有2个参数,函数中的参数可以称为参数列表,参数中的格式为:参数名:参数类型

上面这段代码同样可以改为:

func printMultipleOf(multiplier: Int, and andValue: Int) {

print("\(multiplier) * \(andValue) = \(multiplier * andValue)")

}

printMultipleOf(4, and: 2)

这里第二个参数改为:参数名1 参数名2: 参数类型。这种写法表示参数名1用于外部调用函数时使用,参数名2用于函数内部实现时使用,可以有利于函数的复用。

继续看一段代码:

func printMultipleOf(multiplier: Int, _ andValue: Int) {

print("\(multiplier) * \(andValue) = \(multiplier * andValue)")

}

printMultipleOf(4, 2)

这里第二个参数设置为:_ 参数名2: 参数类型。这样就表示调用这个函数的时候不需要指定名字。

func printMultipleOf(multiplier: Int, _ andValue: Int = 1) {

print("\(multiplier) * \(andValue) = \(multiplier * andValue)")

}

printMultipleOf(4)

printMultipleOf(4,2)

这段代码设置了第二个参数的默认值为1.

上面这段代码是没有返回值的,下面看下有返回值的代码:

func multiply(number: Int, by byValue: Int) -> Int {

return number * byValue

}

let mulresult = multiply(4, by: 2)

返回值的类型在 ->后,这段函数的返回值类型是Int型,return后面是返回值。

下面再看一段代码:

func multiplyAndDivide(number: Int, by byValue: Int) -> (multiply: Int, divide: Int) {

return (number * byValue, number / byValue)

}

let mulresult = multiplyAndDivide(4, by: 2)

let multiply = mulresult.multiply

let divide = mulresult.divide

这段代码返回了一个元组(tuples)。

继续看一段代码:

unc incrementAndPrint(inout value: Int) {

value += 1

print(value)

}

var value = 5

incrementAndPrint(&value)

这里使用inout关键字来进行引用参数传递。

函数同样可以作为变量来使用,和基本的数据类型一样

看下面这段代码:

func add(a:Int, _ b: Int) -> Int {

return a + b

}

var function: (Int, Int) -> Int = add

let result = function(4,2)

这段代码就是将函数作为变量,使用起来是和基本的数据类型一致。

func substract(a: Int, _ b: Int) -> Int {

return a-b

}

function = substract

result = function(4,2)

因为类型是一致的,同样可以把subtract赋值给function。

func printResult(function: (Int,Int) -> Int, _ a: Int, _ b: Int) {

let result = function(a,b)

print(result)

}

printResult(add, 8, 7)

这里function函数作为printResult函数的一个参数,输出的结果为15。


下面是两个练习:

1、

func isNumberDivisible(number: Int, by byNumber: Int) -> Bool {

if number % byNumber == 0 {

return true

} else {

return false

}

}

func isPrime(number: Int) -> Bool {

if number >= 0 {

for i in 2...Int(sqrt(Double(number))) {

if isNumberDivisible(number, by: i) {

return false

}

}

return true

} else {

return false

}

}

isPrime(18653)

判断一个数是否是素数

2、

func fibonacci(number: Int) -> Int {

if number == 1 || number == 2 {

return 1

} else {

return fibonacci(number-2) + fibonacci(number-1)

}

}

fibonacci(1)

fibonacci(2)

fibonacci(3)

fibonacci(4)

fibonacci(5)

fibonacci(9)

fibonacci(19)

fibonacci(1876)

计算Fibonacci数列


相关文章

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

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

  • Swift语言中函数

    swift语言中函数是一个重要的概念,今天主要谈论下函数的相关知识: 函数基础: 先看一段代码: func pri...

  • swift4.1 系统学习十 函数

    swift的函数与其他语言中的函数还是有很多的不同点的, 我们在本节中一起学习swift中的函数都有哪些特性。 辅...

  • swift函数的几种类型

    在swift语言中,定义函数的一般可分为如下几种类型 1.基本类型 需要注意与c语言不同,swift中函数的使用往...

  • Swift闭包和函数

    函数在Swift中只是一种特殊的闭包,闭包在Swift语言中是一等公民,支持闭包嵌套和闭包传递。Swift中的闭包...

  • Swift003-访问修饰词 函数 闭包

    Swift003-访问修饰词 函数 闭包 访问限制词 在 Swift 语言中,访问修饰符有五种,分别为 filep...

  • 9 闭包——《Swift3.0从入门到出家》

    9 闭包——《Swift3.0从入门到出家》 闭包 Swift语言中可以使用一块独立代码块替代函数的定义,称独立的...

  • Swift基础学习2(函数和闭包)

    函数 swift中函数与C语言中函数表现形式上没有太大区别,同时内外部参数的表现形式与OC逻辑相同,微小差异 : ...

  • swift-函数

    函数可以说是在编程语言中非常重要的一种语法类型,swift中,由于函数的语法与方法基本相同,所以从学习函数的语法开...

  • Swift学习笔记(二)

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

网友评论

      本文标题:Swift语言中函数

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