码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-08-29 00:03:02      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:++   常量   嵌套   count   logs   方式   返回   let   需要   

这一节将会提到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 ...
}

 

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

标签:++   常量   嵌套   count   logs   方式   返回   let   需要   

原文地址:http://www.cnblogs.com/winterfells/p/7442089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!