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

SWIFT Function

时间:2015-05-09 16:13:36      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

Swift中的函数跟JAVA语言的函数差不多,但也有差别,SWIFT中定义函数可以指定参数的名称这也是别的语言没有的,好处就是增加了可读性。其返回值是放在未尾的,如以下定义一个加法器:

func add(number1 num1:Int,number2 num2:Int) -> Int{

    return num1 + num2

}

调用时需写上参数名称,也就是参数中的第一个名称

add(number1:1,number2:2)

当然定义函数时number1和number2写不写都可以,为了增加程序的可读性建议还是写上,当然也可以将number1跟num1设为一样的,在参数前面加入#号即可:

func add(#number1:Int,#number2:Int) -> Int{

    return number1 + number2

}

add(number1: 1, number2: 2)

函数参数也可以有默认值:

//Has default value function

func sayHello(userName nickName:String,greeting:String = "Hello"){

    println("\(greeting),\(nickName)")

}

sayHello(userName: "Ken")  //此时打印:Hello Ken

可变参数的函数定义,可变参数要放在参数列表的最后一位:

//changable length parameters

//changeable paramter put at the last position ...

func whoJoin(user1:String,user2:String,others:String ... ){

    var users = "\(user1),\(user2)"

    if !others.isEmpty{

        for user in others{

            users += ",\(user)"

        }

    }

    println(users)

}

默认情况下在函数的参数是常量,也就是说在函数体内不可以修改参数的值,如果要修改....自代码:

//the paramters can be changed,as default situation the parameters is const

func toBianry(var num:Int) -> String{ //将参数用var关键字修饰

    println(num)

    var result = ""

    while num > 0 {

        result = String(num % 2) + result

        num = num / 2  //这样就不会报错了

    }

    return result

}

 

参数的值传递在参数前加入关键字inout:

func calculateResult(inout #battery:Int){

    switch battery{

    case 0..<3:

        battery = 1

    case 3..<6:

        battery = 2

    case 6..<10:

        battery = 3

    default:

        battery = 4

    }

}

 

var battery = 9

calculateResult(battery: &battery) //调有时系统也会提示加入&附号

println(battery)  //3

 

无返回值的函数可以有以下三种定义:

第一种是返回一个关键字Void:

func sayHello(username:String) -> Void {

    println("Hello \(username)")

}

因为没有返回值,可以直接返回一对括号,这就是第二种:

func sayHello(username:String) -> () {

    println("Hello \(username)")

}

第三种就什么也不写,这种还是比较方便的

func sayHello(username:String){

    println("Hello \(username)")

}

 

SWIFT Function

标签:

原文地址:http://www.cnblogs.com/foxting/p/4490102.html

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