zoukankan      html  css  js  c++  java
  • swift学习笔记->函数

    这一章来看看swift的函数声明与调用

    函数声明 func 函数名(参数)->返回类型{函数代码块}

    我们来声明一下

    //无参无反
    func test(){
        print("asdfa");
    }
    //有参有反
    func test1(a:Int)->Int{
       return ++a
    }
    //有参无反
    func test2(a:Int){
       print(a)
    }
    func test(a:Int)->Void{
        print(a);
    }
    //无参有反
    func test()->Int{
       return 1
    }

    函数基本的四个类型就是这样,很简单

    来看看swift特殊的地方

    外部名

    当swift函数有多个参数时写法与其他语言有所区别

    func test5(a: Int ,b:Int) ->Int {
        return a+b
    }
    test5(5, b: 3)

    注意下  这里调用时有什么不同?   多了个b:  对,这就是外部名这个外部名是可变的,针对的是调用者而言  你可以把b改成s或任意变量名(符合变量命名规范)

    func test5(a: Int ,s b:Int) ->Int {
        return a+b
    }
    test5(5, s: 3)

    这样就把外部名改成了s   第一个变量是不用外部名的,当然你也可以给他加一个   就像刚才给b的变量名改成s一样

    默认值

    这个就是字面上意思   参数有一个默认值,声明函数的时候设置

    func test6(a: Int = 5,b:Int = 5) ->Int {
        return a+b
    }
    test6() test6(
    5) test6(b: 3) test6(5, b: 3)

    如果这个函数参数声明了默认值 则会有这么多种调用方式(没给的参数则会用默认的)

    这里注意几点

    1.有默认值的情况,参数统统都放在后面

    2.调用时参数顺序,尽量与声明函数时的顺序一样

    修饰

    默认情况下形参参数类型是let常量,如果需要修改则自行加上var

    如果需要引用传值则加inout

    fun test7(a:Int){
      //a=3(报错)
      print(a)    
    }
    fun test8(var a:Int){
      a=3
      print(a)    
    }
    fun test8(inout a:Int){
      a=3
      print(a)    
    }
    var a = 5
    test8(a)
    a

    可变参数长度

    func add(initNum: Int,numbers:Int...)->Int {
        var totals = initNum
        for num in numbers {
            totals += num
        }
        return totals
    }
    add(5,numbers: 6)
    add(6,numbers:2,4,3)

    写法如上第二个参数,不管多少个int类型参数都会集合起来作为numbers数组

  • 相关阅读:
    汇编学习笔记(3)[bx]和loop
    C++面试题-概念篇(一)
    命名空间的冷思考
    背包以及装备模块封装的思考
    虚函数,纯虚函数以及虚继承
    组件化开发在游戏开发当中的思考和汇总
    Netty和MINA之间的比较思考
    学习C++与Java之间的区别
    C++服务器年前总结
    C++Builder如何将当前时间与字符串相互转换
  • 原文地址:https://www.cnblogs.com/pengser/p/4969950.html
Copyright © 2011-2022 走看看