zoukankan      html  css  js  c++  java
  • Welcome to Swift (苹果官方Swift文档初译与注解三十一)---225~230页(第五章-- 函数)

    Functions (函数)

      函数是一个执行特定任务的代码段.通过名称来标识和调用它们.

      在Swift中,每个函数都有类型,包括函数的参数类型和返回值类型.这些类型与Swift中的其他类型使用起来一样,这使得函数可以作为参数传递给另一个函数,以及可以从一个函数中返  回函数,一个函数也可以写在另一个函数内部,这样可以更有效的封装和嵌套.

    Defining and Calling Functions (定义和调用函数)

      当你在定义函数的时候,你可以选择性的命名一个或者多个参数类型值,以及函数执行后的返回值类型.

      每个函数都有一个名字,它是用了描述函数的功能.如果想调用这个函数,可以直接使用函数的名字并传递相应的参数(参数的类型要与函数的参数列表匹配).

      下面是一个greetingForPerson函数的简单例子,它接收一个人名作为参数,返回一个问候语(一个String类型的值):

        func sayHello(personName: String) -> String {

            let greeting = "Hello, " + personName + "!"

            return greeting

        }

      上面的代码包含了函数定义的信息:前缀的关键字func,以及紧跟在函数名称后面的返回箭头符号(->),它表示函数的返回值类型.

      这个定义样例描述了这个函数有什么功能,它要接收什么,以及函数完成后会返回什么.这使得这个函数在代码的其他地方调用都会非常清晰:

        println(sayHello("Anna"))

        // prints "Hello, Anna!"

        println(sayHello("Brian"))

        // prints "Hello, Brian!”

      你可以多次调用sayHello函数,并使用不同的参数值.为了简化函数体,可以使用一行代码整合:

        func sayHelloAgain(personName: String) -> String {

            return "Hello again, " + personName + "!"

        }

        println(sayHelloAgain("Anna"))

        // prints "Hello again, Anna!”

    Function Parameters and Return Values (函数的参数和返回值)

      在Swift中,函数的参数和返回值是非常富有弹性的.你可以定义任意类型的返回值,也可以使用一个或者多个参数(或者匿名的参数).

    Multiple Input Parameters (多个参数)

      函数可以有多个参数,它们写在函数的括号内,并使用逗号分隔.

      代码例子:

        func halfOpenRangeLength(start: Int, end: Int) -> Int {

            return end - start

        }

        println(halfOpenRangeLength(1, 10))

        // prints "9”

    Functions Without Parameters (无参函数)

      函数没有要求必须使用参数.下面的函数例子中使用了没有参数的函数,当它被调用的时候,它总是返回相同的String信息:

        func sayHelloWorld() -> String {

             return "hello, world"

        }

        println(sayHelloWorld())

        // prints "hello, world”

      无参的函数定义的时候仍然需要在函数名后面使用括号().

    Functions Without Return Values (无返回值函数)

      函数也可以不定义返回值,这么的代码样例定义了一个函数waveGoodbye,它只是打印输出String值,而不是返回这个值:

        func sayGoodbye(personName: String) {

            println("Goodbye, (personName)!")

        }

        sayGoodbye("Dave")

        // prints "Goodbye, Dave!"

      由于函数不需要返回值,因此定义函数的时候没有使用返回剪头(->)

      注意点:

      严格意义上说,sayGoodbye函数仍然有返回值,尽管没有定义它的返回值.当函数没有定义返回值的时候,这个函数返回一个Void类型的值.它是一个空的元组,元素个数为零,可以写做  ().

      在调用函数的时候,也可以忽略函数的返回值:

        func printAndCount(stringToPrint: String) -> Int {

            println(stringToPrint)

            return countElements(stringToPrint)

        }

        func printWithoutCounting(stringToPrint: String) {

            printAndCount(stringToPrint)

        }

        printAndCount("hello, world")

        // prints "hello, world" and returns a value of 12

        printWithoutCounting("hello, world")

      // prints "hello, world" but does not return a value”

      注意点:

      函数的返回值可以被忽略,但是函数必须有一个返回值.定义了函数的返回值,但如果在函数最后没有返回值,将会导致一个编译错误.

  • 相关阅读:
    jvm调试相关:jmap失效下找到alternatives神器
    作业2:java内存模型图示
    Python脚本:Linux自动化执行Python脚本
    Nodejs:单线程为什么能支持高并发?
    作业1:java虚拟机内存模型图示
    SpringBoot中获取spring.profiles.active的值
    线程中使用注解出现空指针如何解决?
    java7:核心技术与最佳实践读书笔记——对象生命周期
    java7:核心技术与最佳实践读书笔记——类加载
    虚拟机上不了网啦
  • 原文地址:https://www.cnblogs.com/caios/p/3841745.html
Copyright © 2011-2022 走看看