zoukankan      html  css  js  c++  java
  • Swift

    1,无返回值的函数
    1
    2
    3
    func test(name:String){
     
    }

    2,返回一个返回值
    1
    2
    3
    func test(name:String) -> Bool{
        return true
    }

    3,返回由多个值组成的复合返回值
    1
    2
    3
    4
    5
    func test(name:String) -> (Int,Bool){
        var position = 1
        var visible = false
        return (position,visible)
    }

    4,可变形参:可以接受0个或者任意数量的输入参数
    1
    2
    3
    4
    5
    6
    7
    func test(numbers:Int...) -> Int{
        var count:Int = 0
        for number in numbers{
            count += number
        }
        return count
    }

    5,在Swift函数中,参数默认是常量。如果要改变参数的值,就需要在定义函数的时候加上关键字var。(外部的参数任然不会被修改)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var age = 22
     
    //无法编译
    func add(age:Int) {
        age +=1
    }
     
    //可以编译
    func add(var age:Int) {
        age +=1
    }

    6,如果想要同时改变函数内外的参数值,可以利用inout关键字,同时调用函数的时候给参数加上前缀“&”
    1
    2
    3
    4
    5
    6
    7
    var age = 22
    func add(inout age:int){
        age += 1
    }
     
    changeAge(&age)
    println(age) //23

    7,可以使用函数类型的参数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    func additive(a:Int, b:Int) -> Int{
        return a + b
    }
     
    //函数类型的参数
    func printAdditiveResult(addFun: (Int, Int) -> Int, a:Int, b:Int){
        println("Result:(addFun(a,b))")
    }
     
    printAdditiveResult(additive, a: 5 ,b: 7)

    8,也可以使用函数类型的返回值
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    //定义个自增函数
    func increase(input:Int) -> Int{
        return input + 1
    }
     
    //定义个自减函数
    func reduce(input:Int) -> Int{
        return input - 1
    }
     
    //定义一个返回函数类型的函数
    func chooseFunction(backwards:Bool) -> (Int) -> Int{
        return backwards ? reduce : increase
    }
     
    //测试
    let aFun = chooseFunction(3>2)
    println(aFun(3))  //2
  • 相关阅读:
    centos7安装puppet详细教程(简单易懂,小白也可以看懂的教程)
    centos7.3下安装nginx
    JS实现转动随机数抽奖的特效代码
    【孤独旅者】封装一个三级联动和基于Vue的mintUI三级联动
    【孤独旅者】Vue-封装$on,$emit,$off
    数据可视化,选择Echarts还是Highcharts?
    关于redux和react-redux
    vue 封装一个插件
    vue实现点击回到顶部
    vue实现吸顶
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4838090.html
Copyright © 2011-2022 走看看