美文网首页
Swift 函数

Swift 函数

作者: BearClawr | 来源:发表于2018-03-16 16:56 被阅读0次

函数

函数是执行特定任务的一段代码,并指定了一个函数名,在需要的时候可以多次调用这个代码。

函数的定义和调用

Swift 使用 func 关键字来定义函数,具体格式如下:

func 函数名(参数名1: 参数类型, 参数名2: 参数类型...)-> 返回值类型 {
    函数体
    return 返回值
}

注意:

  1. func:表示函数的关键字
  2. 函数名:表示函数的名称,用来简要地描述函数的功能
  3. 参数名:用于接收调用函数时传入的数据
  4. 参数类型:用来限定调用函数时传入参数的数据类型
  5. 返回值类型:用于限定函数返回值的数据类型

有哪几种函数

无参函数

func sayHelloWorld() -> String {
    return "Hello World!"
}

多参函数

func sayHelloWorld(name: String, alreadyGreeted: Bool) -> String {
    if alreadyGreeted {
        return "Hello again,\(name)"
    } else {
        return "Hello,\(name)"
    }
}

print(sayHelloWorld(name: "Tom", alreadyGreeted: true))

无返回值函数

func test1() {
    print ("嘻嘻")
}

func test2() -> Void {
    print ("嘻嘻")
}

func test3() -> () {
    print ("嘻嘻")
}

多返回值函数

func count(string: String) -> (vowels: Int, consonants: Int, others: Int) 
{
    var vowels = 0, consonants = 0, others = 0
    for character in string.characters {
        switch String(character).lowercased() {
            case "a","e","i","o","u":   // 元音
                vowels += 1
            case "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z" :
                consonants += 1
            default:
                others += 1
        }
    }
    return (vowels, consonants, others)
}
let total = count(string: "welcome to itcast")
print("\(total.vowels)个元音字母和\(total.consonants)个辅音字母!")

局部参数名和外部参数名

局部参数名

只能在函数本身的主体中使用,无法在调用时使用,这种参数类型名称称为局部参数名。

func someFunction(firstParameterName: Int, secondParameterName: Int) 
{
    // 函数体
}

外部参数名

所谓外部参数名,是指参数名的前面再增加一个参数名。如果为参数指定了外部形参
名,调用的时候就必须显式地使用,下面是带有外部参数名的基本格式:

func 函数名(外部参数名1 参数名1: 参数类型,外部参数名2 参数名2: 参数类型...) -> 返回值类型 
{
    函数体...
    return 返回值
}

函数参数的其他用法

  1. 默认参数值
func sayHi(message: String, name: String = "小明") -> Void 
{
    print("\(name),\(message)");
}
  1. 可变参数
func arithmeticMean(numbers: Double) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total / Double(numbers.count)
}
print(arithmeticMean(numbers: 1, 2, 3, 4, 5))
  1. In-Out(输入输出)参数:可以在函数内修改参数值,并且在函数外使用。
func swapTwoInts(a: inout Int, b: inout Int) {
    let temporaayA = a
    a = b
    b = temporaayA
}

注意:inout 修饰的参数是不能有默认值的,也不能是有范围的参数集合,另外,一个参数一旦被 inout 修饰,就不能再被 let 修饰了。

嵌套函数

嵌套就是指写在函数里的函数。

func calculate(opr: String) -> (Int, Int) -> Int {
    // 定义加法函数
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    
    // 定义减法函数
    func sub(a: Int, b: Int) -> Int {
        return a - b
    }
    
    var result: (Int, Int) -> Int 
    switch opr {
        case "+":
        result = add
        case "-":
        result = sub
        default:
        result = add
    }
    retrun result
}

相关文章

  • Swift学习笔记(二)

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

  • Swift中的标准函数

    Swift中的标准函数 Swift中的标准函数

  • Swift の 函数式编程

    Swift の 函数式编程 Swift の 函数式编程

  • 10.函数(function)

    函数 kotlin_函数 swift_函数

  • swift 函数

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

  • swift学习笔记②

    Swift学习笔记 - 文集 语法篇 一、函数 函数定义 Swift 定义函数使用关键字 func,functio...

  • #6 函数

    swift functions - 极客学院 swift的函数和JS的函数基本类似,有几点不同的是: swift中...

  • iOS知识点-9.Swift 是面向对象还是函数式的编程语言?

    Swift Basics Swift 是面向对象还是函数式的编程语言? Swift既是面向对象的,又是函数式的编程...

  • Swift高阶函数解析

    一、锲子 最近在学习Swift过程中发现,Swift有不少高阶函数,这些函数为Swift支持函数式编程范式提供了强...

  • swift 临时

    //// ViewController.swift// Swift01_函数//// Created by ...

网友评论

      本文标题:Swift 函数

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