Swift函数的使用

来源:互联网 发布:mac版围棋对弈软件 编辑:程序博客网 时间:2024/06/06 01:18

函数

//1.定义函数

func 函数名(传入的值:String) ->String{

   

    return 传入的值

   

}

//2.函数的调用

let 传入值 = "hallow xiaozhou"

println("函数调用的结果为:\(函数名(传入值))")

//函数调用的结果为:hallow xiaozhou

 

//3.函数的形式参数和它的返回值

//3.1多参和无参

//3.1.1 多参

func 长度(起始值:Int,终止值:Int) ->Int {

    return 终止值 - 起始值

}

println("多参的最终结果为:\(长度(2,6))")

//多参的最终结果为:4

//3.1.2无参

func 问候语() -> String {

    return "你好"

}

println("接电话时,礼貌的做法是:第一句说\(问候语())")

//接电话时,礼貌的做法是:第一句说你好

//3.2无返回值

func 显示并计数(字符串:String){

   println("\(字符串)的长度为\(countElements(字符串))")

}

显示并计数("泪滴嘎嘎")

//泪滴嘎嘎的长度为4

//3.3多返回值(返回值为元祖)

func 取极值(数组:[Int]) -> (max:Int,min:Int) {

    var 最大值 = 数组[0]

    var 最小值 = 数组[0]

    for 变数 in 数组 {

        if 变数 > 最大值 {

            最大值 = 变数

        }elseif 变数 < 最小值 {

            最小值 = 变数

        }

    }

    return (最大值,最小值)

}

 

let array = [2,10,-1,23,72,7,1,100]

let (max,min) = 取极值(array)

println("数组\(array)中最大值为:\(max),最小值为:\(min)")

//数组[2, 10,-1, 23, 72, 7, 1, 100]中最大值为:100,最小值为:-1

//3.4可选元祖返回,添加"?"变为可选

func 取极值2(数组:[Int]) -> (max:Int,min:Int)? {

    if 数组.isEmpty {

        returnnil

    }else{

        var 最大值 = 数组[0]

        var 最小值 = 数组[0]

        for 变数 in 数组 {

            if变数 > 最大值 {

                最大值 = 变数

            }elseif 变数 < 最小值 {

                最小值 = 变数

            }

        }

        return(最大值,最小值)

    }

}

//[Int]()空数组

let 极值 = 取极值2([Int]())

println("极值为:\(极值)")

//极值为:nil

let 极值2 = 取极值2([1,2,3,4,0])

println("极值2:\(极值2)")

//极值2:(4, 0)

 

//4.本地参数和外部参数

//4.1有外部参数的函数(姓名,性别都是外部参数)

func 个人信息(姓名 name:String,性别 sex:String) ->String{

    return "你的姓名为:\(name),性别为:\(sex)"

}

let 信息 = 个人信息(姓名: "小周", 性别:"")

println("个人信息:\(信息)")

//个人信息:你的姓名为:小周,性别为:

//4.2本地参数名和外部参数名的统一(#)

func 个人信息2(#姓名:String,#性别:String) ->String{

    return "你的姓名为:\(姓名),性别为:\(性别)"

}

//调用结果与方式与有外部参数的函数一样,但这样更简洁

let 信息2 = 个人信息2(姓名: "小周", 性别:"")

println("个人信息:\(信息2)")

//个人信息:你的姓名为:小周,性别为:

 

//5.参数默认值

func 个人信息3(姓名:String,性别:String ="") ->String {

    return "你的姓名为:\(姓名),性别为:\(性别)"

}

//5.1调用方法一:不用默认值("性别:"->有参数默认值自动把本地参数变成外部参数名 )

let 信息3 = 个人信息3("小周", 性别:"")

println("个人信息:\(信息3)")

//个人信息:你的姓名为:小周,性别为:

//5.2调用方法二:用默认值

let 信息4 = 个人信息3("小周")

println("个人信息:\(信息4)")

//个人信息:你的姓名为:小周,性别为:

 

//6.可变参数(数组集:Int...传的数组个数不一样),如果有多个参数,一定要把可变参数放在最后,不易混淆

func 求和(其他值:String,数字集:Int...) ->Int{

    var 和 = 0

    forin 数字集 {

        和 += 值

    }

    return

}

//1,2,3,5数字集,还可以向后面添加值,如:1,2,3,5,6,8,4,3,9

let 和 = 求和("10", 1,2,3,5)

println("和为:\()")

//和为:11

 

//7.可变参数

let 名字 = "小周"

//必须是”var“,不然默认是“let”,不可变

func 居右对齐(var 原文本:String ,长度:Int,填充字符:String) ->String{

    let 要填充的长度 = 长度 - countElements(原文本)

    for _ in 1...要填充的长度 {

        原文本 = 填充字符 + 原文本

        //在原文本的前面添加填充字符

    }

   

    return 原文本

}

let b = 居右对齐(名字, 10,"@")

println(b)

//@@@@@@@@小周

 

//8.In-Out参数(可以直接改变传进去参数的值)

func 交换值(inout a:Int,inout b:Int){

    let tem= a

    a = b

    b = tem

}

var a1 = 10,a2 = -10

交换值(&a1, &a2)

println("a1原来的值为10,现在为\(a1),a2原来的值为-10,现在为\(a2)")

//a1原来的值为10,现在为-10,a2原来的值为-10,现在为10

 

//9.函数类型作为变量和常量

func 两个数相加(a:Int,b:Int)->Int {

    returna+b

}

func 两个数相乘(a:Int,b:Int)->Int {

    returna*b

}

var 临时 = 两个数相加

临时(2,5)//7

临时 = 两个数相乘

临时(2,5)//10

 

//10.函数类型作为参数

func 显示相乘结果 (a:Int,b:Int,相乘函数:(Int,Int) ->Int)  {

    let 结果 = 相乘函数(a,b)

    println("\(a)\(b)等于\(结果)")

}

显示相乘结果(10,100,两个数相乘)

//10100等于1000

 

//11.嵌套函数(函数里面有函数)

func 判断加减(正:Bool) -> (Int)->Int {

    //对外不可见

    func 加(数:Int) ->Int{

        return数+1

    }

    func 减(数:Int) ->Int{

        return数-1

    }

    return 正 ? :

}

0 0
原创粉丝点击