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
  • 相关阅读:
    使用python发送(SMTP)qq邮件
    google hack
    python多线程爬取网页
    windows自带的颜色编辑器居中
    (转)如何在任务栏添加托盘图标
    c++ 字符串转数字或数字转字符串
    (转)null和NULL和nullptr和””区别
    Windows系统自带选择文件的对话重写和居中处理
    ANSII 与Unicode,Utf8之间的转换
    (转) Windows如何区分鼠标双击和两次单击
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4838090.html
Copyright © 2011-2022 走看看