zoukankan      html  css  js  c++  java
  • 【swift-总结】函数

    swift的函数在swift2中的使用改变了不少

    /**
    *param: personName 參数
    *returns: String为返回值
    */
    func sayHello(personName: String) -> String {
        return "Hello " + personName;
    }
    /*swift2中函数的调用必需要使用标签或者别名,没有别名第一个标签不带*/
    func add(a: Int, b: Int) -> Int {
        return a + b;
    }
    print(add(1, b:2));
    /*假设使用了别名,函数调用的时候必须使用别名*/
    func add(num1 a: Int, b: Int) -> Int {
        return a + b;
    }
    print(add(num1: 1, b:2));

    返回多个值

    /*返回多个值,也就是返回一个元组*/
    var nums = [1, 2, 3, 4, 5]
    
    func minMax(array: [Int]) -> (min: Int, max: Int) {
        var minNum = array[0];
        var maxNum = array[0];
    
        for num in array {
            if num < minNum {
                minNum = num
            } else if num > maxNum {
                maxNum = num
            }
        }
    
        return (minNum, maxNum);
    }
    
    print(minMax(nums).max);
    print(minMax(nums).min);

    返回可选的元组

    var nums = [1, 2, 3, 4, 5]
    
    func minMax(array: [Int]) -> (min: Int, max: Int)? {
        if array.isEmpty {
            return nil;
        }
        var minNum = array[0];
        var maxNum = array[0];
    
        for num in array {
            if num < minNum {
                minNum = num
            } else if num > maxNum {
                maxNum = num
            }
        }
    
        return (minNum, maxNum);
    }
    
    print(minMax(nums)!.max);
    print(minMax(nums)!.min);

    默认參数

    func numFun(num: Int = 22) {
        print(num);
    }
    numFun();//输出22

    可变參数

    func numAdd(nums: Int...) {
        var sum = 0;
        for num in nums {
            sum += num;
        }
    
        print(sum);
    }
    numAdd(1, 2, 3);

    不用标签调用函数的情况

    func addNum(_ a:Int, _ b: Int) {
       a + b;
    }
    addNum(a, b);

    变量參数

    函数參数默觉得常量,函数内部不能改变參数的值
    要想在函数内部改变參数的值。就要使用变量作为參数

    func swapNum(var a:Int, var b: Int) {
        var temp = a;
        a = b;
        b = temp;
    }

    in-out參数

    函数默认是使用拷贝传递函数的
    使用in-out修饰參数表示參数是使用指针传递函数

    func swapNum(inout a:Int, inout b: Int) {
        let temp = a;
        a = b;
        b = temp;
    }
    
    var a = 1;
    var b = 2;
    
    swapNum(&a, b: &b);
    print("a is (a), b is (b)");

    函数类型

    func add(a: Int, b: Int) -> Int {
        return a + b;
    }
    print(add( 1, b:2));
    
    /*声明一个变量,后面是函数类型*/
    var addNum: (Int, Int) -> Int = add;
    
    print(addNum(2, 3));

    函数类型作为參数

    func result(numFun: (Int, Int) -> Int, a: Int, b: Int) {
        print(numFun(a, b));
    }
    
    result(addNum, a: 6, b: 7);

    函数类型作为返回值

    /*返回一个函数*/
    func chooseFunc() -> (Int) -> Int {
    
    }

    嵌套函数

    func addNum(a: Int, b: Int) {
        func printNum() {
            print(22);
        }
        printNum();
        print(a + b);
    }
    var a = 1;
    var b = 3;
    addNum(a, b:b);
  • 相关阅读:
    解决问题,别扩展问题
    Hystrix 配置参数全解析
    请求合并哪家强
    在Spring-Boot中实现通用Auth认证的几种方式
    Java高级特性之泛型
    一键部署进化史
    JavaScript Alert 函数执行顺序问题
    新版的 Springsecurity request.getRequestDispatcher).forward(request, response); 404 问题,已解决
    maridb 10.3 主从复制,待机情况下从库 cpu 占用率高的处理方法
    springboot 2.0 mariadb hikari-cp连接池
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/7232152.html
Copyright © 2011-2022 走看看