• Swift语言中与C/C++和Java不同的语法(五)


    这一节将会提到Swift中其他的关于函数的应用,这些内容包括有:

    默认参数值和可变参数值、常量参数、返回函数类型和函数嵌套:

    一、默认参数值和可变参数值

    对默认参数值是指在函数的声明中就已经定义了参数的初值,比如:

    func sayHelloTo(name:String,greeting:String = “Hi”, punctuation:String = “!”){
    }
    在调用的时候可以是:
    sayHelloTo(name:“PlayGround”, punctuation :“!!!”, greeting :“Hi”)

    因为对有默认参数的函数来说,有默认参数值的参数是可以调换顺序的,但是不建议这样使用。print函数就是有分割符和结束符初始值的函数。

    对变长的参数类型的函数来说,

    func mean(numbers : Double ...)-> Double {
        for number in numbers {
            sum+=number
        }
        return sum/Double(numbers.count)
    }
    
    调用可以是:
    mean(2)
    也可以是
    mean(23456

    但是一个函数只可以有一个变长的参数。

    二、常量参数

    与Java和C/C++不同,Swift不可以在函数中改变参数的值,因为传入参数的值的类型声明是let,好的函数会尽量避免需要改变函数参数的值。

    但是如果要改变参数的值,需要这样来声明:

    func toBinary(var num:Int)-> String {
        return num/2
    }

    将类型声明为var,

    但是这样的改变只是在函数的内部改变,但是在函数的外面是不改变的,

    这是因为这种方式是按值出传入的,不是引用传入,只是在函数的内部进行了copy

    如果需要痛殴函数改变外部参数的值,需要添加inout

    func swapInt(inout a :Int, inout b : Int){
        (a,b) = (b,a)
    }
    var x : Int = 1
    var y : Int = 2
    swapInt(&x,&b)

    三、返回函数类型

    这个也很简单,返回的类型是函数就好了:

    func tire1 (weight : Int)-> Int {
    }
    func tire2 (weight : Int ) ->Int {
    }
    func choose (weight : Int) -> (Int) -> Int {
        return weight>10 ? tire1(weight) : tire2(weight)
    }

    四、函数的嵌套

    func feeByPrice(price : Int,weight:Int)->Int {
      func choose (weight : Int) -> (Int) -> Int {
          return weight>10 ? tire1(weight) : tire2(weight)
      }
    return ...
    }
    
    
  • 相关阅读:
    【算法】剑指第二版面试题6 :从尾到头打印链表
    Go电商秒杀 (1)
    Go秒杀服务端优化
    Linux AUFS 文件系统
    mount挂载虚拟文件系统
    自己动手写docker之Linux命令(CentOS7.7)
    自己动手写docker之namespace和cgroup
    【协作式原创】自己动手写docker之urfave cli
    Go 1.14之前的死循环Case
    linux下定时执行任务的方法
  • 原文地址:https://www.cnblogs.com/winterfells/p/7442089.html
Copyright © 2020-2023  润新知