zoukankan      html  css  js  c++  java
  • swift -- 函数

    1.函数的定义与调用

    //函数的定义

    func add(){

        print("add")

    }

    //函数的调用

    add()

     2.函数参数与返回值

    //func 函数名称(函数参数) -> 返回值

    func sub(a : Int , b : Int) -> Int{

    return a  + b

    }

    3.无参函数

    func add1(){

        print("add1")

    }

    //调用

    add()

     4.多参函数

    func add2(a : Int , b : Int){

        print(a,b)

    }

     add2(4 , b : 6)  //注意,多参的调用

    5.无返回值函数

    //两种写法

    func add3(a : Int){

        print(a)

    }

    add3(7)

    //void

    func add4(a : Int) -> Void {

        print(a)

    }

    add4(7)

    6.有返回值函数

    func add5(a : Int) -> Int {

        return a

    }

    let ss = add5(0)  //接收返回值

    print(ss)

     7.元组  作为返回值

    func add6(a : Int , b : Int) -> (Int , Int){   // 返回元祖

            return (a*10 , b*5)

    }

    let yuan = add6(4, b: 5)

    print(yuan)

    8.可选元组 作为返回值

    func add7(a : Int) -> (Int , Int)? {   // 返回可选元祖

        if a < 10{

            return nil  //只有当返回值为 可选类型?的时候,才能返回nil ,别的不行

        }

        return (a,10)

    }

    //调用

    let yu = add7(11)

    print(yu)

     9.指定函数外部参数

    //a      是内部用,内部参数

    //one   是外部用,外部参数

    func add8(one a : Int , two b : Int) -> Int {

        return a + b

    }

    print(add8(one: 5, two: 6))

    10.忽略函数外部参数.

    func add9(a : Int , _ b : Int) -> Int{

        return a+b

    }

    print(add9(5, 6))  //注意:此时第二个变量没有

    11.函数默认参数值

    func sub(a : Int , b : Int = 10) -> Int{

        return a + b

    }

    let c = sub(10, b: 30)

    let d = sub(1) //只传入一个参数

     12.函数可变参数(…)

    //...代表可传入多个参数都可以(类似将a看做数组)

    func sub1(a : Int ...) -> Int{

        var sum = 0

        for i in a{

            sum += i

        }

        return sum

    }

    let s = sub1(1)

    let s1 = sub1(1,2,3)

    print(s1)

     13.函数输入输出参数  inout 

    var a10 = 10

    var a11 = 11

    func sub2(inout a : Int ,inout b : Int) -> Void{

        let c = a

        a = b

        b = c

        print(a , b)

    }

     sub2(&a10, b: &a11)  // 传入的是地址

    14.函数类型

    // (Int , Int) -> Int

    func run(a : Int , b : Int) -> Int {

        return a + b

    }

     func eat(a : Int , b : Int) -> Int{

            return a - b

    }

     15.函数类型最为类型使用

    let f : Int = 10

    let fun : (Int , Int) -> Int = run   //直接写函数名,赋值

    print(fun(1,2))

    16.函数类型作为 参数类型

    func sing(a : (Int,Int) -> Int , b : Int ,c : Int ,d : Int) ->Int {

        return a(b,3) + c + d

    }

    let sss = sing(run, b: 1, c: 2, d: 3) //a 只传入函数名即可

    print(sss)

    17.函数类型做为返回值

    func tea(a : Int , b : Int) -> (Int, Int) -> Int {

        if a > b {

            return eat // 只返回函数的名称

        }else{

            return run

        }

        

    }

    let rr = tea(1, b: 2)  //此时 rr 接收的是一个函数

    let tt = rr(2,3)   //tt 运行的是eat 或run 函数

  • 相关阅读:
    postgresql小纪
    Java的大内存分页支持
    GCViewer / MAT
    js给数组去重写法
    解决mybatis foreach 错误: Parameter '__frch_item_0' not found
    JSON字符串和JS对象之间的转换
    使用IntelliJ IDEA搭建多maven模块JAVA项目
    jstl中的sql:query标签获取的结果如何格式化输出
    Label控件如何根据字符串自定义大小
    winform/窗体鼠标事件编程中的几个问题
  • 原文地址:https://www.cnblogs.com/daxueshan/p/5585214.html
Copyright © 2011-2022 走看看