zoukankan      html  css  js  c++  java
  • swift 2.0 语法 函数

    //: Playground - noun: a place where people can play

     

    import UIKit

     

    /*:

    函数

    * 格式

    func 函数名称(形参名称1: 形参类型, ...) -> 返回值类型

    {

        // 逻辑代码

    }

    * 没有参数没有返回值

    * 没有参数有返回值

    * 有参数没有返回值

    * 有参数有返回值

    */

     

    // 没有参数没有返回值

    // 如果函数的返回值是Void, 那么可以简写为()

    // 如果函数的返回值是(), 那么可以直接不写

    func say() ->Void

    {

        print("say hello")

    }

    say()

     

    func say1() ->()

    {

        print("say hello")

    }

    say1()

     

    // 开发中请写下面这种

    func say2()

    {

        print("say hello")

    }

    say2()

     

     

    // 没有参数有返回值

    func getNumber() -> Int

    {

        return 998

    }

    print(getNumber())

     

    func getMinAndMax() ->(Int, Int)

    {

        return (1, 998)

    }

    let (min, max) = getMinAndMax()

    print(min)

    print(max)

     

     

    // 有参数没有返回值

    // 注意: Swift2.0之前, 是不会将第二个参数开始后面所有的参数名称作为标签名称

    //      Swift2.0开始, Swift才将第二个参数开始后面所有的参数名称作为标签名称

    // Swift2.0之前, 如果想实现这个功能, 那么必须手动添加外部参数

    func sum(num1: Int, num2: Int)

    {

        print(num1 + num2)

    }

    sum(10, num2: 20)

     

     

    /*:

    外部参数和内部参数

    * 内部参数: 默认情况下, 所有的形参都是内部参数

    * 外部参数: Swift2.0之前, 可以通过在形参前面加上名称的方式来制定外部参数, Swift2.0之后, 默认情况下从第二个形参开始, 形参既是内部参数又是外部参数

     

    如何指定外部参数:

    在形参前面以空格隔开, 加上一个名称即可

    例如: value2 num2: Int

             外部   内部  数据

     

    如何忽略外部参数:

    * 在形参前面以空格隔开, 加上_

    * _代表忽略

    * 例如:  _   num2: Int

            忽略 内部  数据

    */

     

    func sum1(num1: Int,_ num2: Int)

    {

        print(num1 + num2)

    }

    sum1(10, 20)

     

    /*:

    常量形参和变量形参

    * 默认情况下所有的形参都是常量形参, 也就是说不能在函数中修改形参的值

    * 如果想在函数中修改形参的值, 那么必须把形参变为变量形参

    *    只需要在变量名称前面加上 var即可

    *    注意: 在函数中修改形参的值, 是不会影响到外部实参的值

    */

     

    func swap(var num1: Int, var num2: Int)

    {

        let temp = num1

        num1 = num2

        num2 = temp

    }

    let a = 10

    let b = 20

    print("a = (a), b = (b)")

    swap(a, num2: b)

    print("a = (a), b = (b)")

     

     

    /*:

    输入输出参数

    * 如果想在函数中修改形参的值, 并且同时修改实参的值, 那么就必须将形参变为输入输出形参

    *   只需要在形参名称前面加上inout即可

    */

     

    func swap2(inout num1: Int, inout num2: Int)

    {

        let temp = num1

        num1 = num2

        num2 = temp

    }

    var n = 10

    var m = 20

    print("n = (n), m = (m)")

    swap2(&n, num2: &m)

    print("n = (n), m = (m)")

     

     

    /*:

    可变参数

    * 当一个函数不确定接收多少个参数时, 就可以使用可变参数

    * 举例: 计算两个数的和 --> 需求变更 --> 计算三个数的和 --> 需求又变更 --> 计算10个数的和

    注意点:

    * 可变参数必须指定数据类型

    * 在其它语言中有可能可变参数只能放到形参列表的最后面, Swift中可以放到任意位置

    */

     

    // 既然任意个整数的和

    func sum3(numbers: Int...)

    {

    //    print(numbers)

        var sum = 0

        for number in numbers

        {

            sum += number

        }

        print(sum)

    }

    sum3(10, 20)

     

    func sum4(numbers: Int..., value: Int)

    {

        //    print(numbers)

        var sum = value

        for number in numbers

        {

            sum += number

        }

        print(sum)

    }

    sum4(10, 20, value: 999)

     

    /*:

    默认值

    * 可以给形参指定默认值, 如果一个形参指定了默认值, 那么调用的时候就可以不传递该参数的值, 如果没有传递那么就使用默认值

    注意点

    * 在其他语言中可能默认值只能写在形参列表的最后面, 但是Swift中可以写在任意位置

    */

     

    func joinString(str1: String = "lnj", str2: String = "❤️", str3: String = "520")

    {

        print(str1 + str2 + str3)

    }

    //joinString("xmg", str2: "❤️", str3: "520")

    //joinString("xmg", str2: "", str3: "520")

    //joinString("xmg", str3: "520")

    //joinString("lnj")

    joinString()

     

    // 有参数有返回值

    func sum5(num1: Int, num2: Int) -> Int

    {

        return num1 + num2

    }

    print(sum5(20, num2: 20))

     

     

     

     

     

     

  • 相关阅读:
    插件之基类窗体
    插件之类注册
    主控程序之主窗体
    主控程序、插件之间的接口声明
    XE2 LSUPER LITE安装提示item not found
    远程方法的定义和调用
    主控程序之插件装载器二
    插件之接口实现
    主控程序之插件装载器一
    sql工厂类
  • 原文地址:https://www.cnblogs.com/developer-ios/p/4943591.html
Copyright © 2011-2022 走看看