Swift基础-0006 【swift函数调用】

*swift函数调用

  • swift函数调用
  • swift函数嵌套
  • swift函数多态
//: case5 函数调用

import UIKit

var str = "Hello, playground"

//带一个参数一个返回值函数
func sayName(name:String) ->String
{
    var say = "my name is "+name
    return say
}

println(sayName("张三"))


//多参数函数
func mayArgs(name:String,old:Int) ->String
{
    return "my name is " + name + "old is \(old))"
}

println(mayArgs("李四",29))


//无返回值无参数函数

func method()
{
    println("world")
}

print("hello ")
method()
println()



//多返回值函数

//统计abc个数
func manyArgs(name:String) ->(a:Int , b:Int , c:Int)
{
    var A = 0 , B = 0, C = 0, D = 0
    for str in name
    {
        switch String(str).lowercaseString
        {
            case "a":
            A++
            case "b":
            B++
            case "c":
            C++
        default:
            D++
        }


    }

    return (A,B,C)
}

let rt = manyArgs("basaaaae")

println("base 这个字符串共含有\(rt.a)个a \(rt.b)个b  \(rt.c)个C ")

//扩展参数的两种用法

func kuoArgs(name n:String,old o:Int) ->String
{
    return "名叫:" + n + " " + "年龄" + String(o)
}

let str2 = kuoArgs(name:"张三",old:22)
println("\(str2)")


//函数的默认参数值处理
func defaultArgs(name n:String = "张三",old o:Int = 31 )->String
{
    return "name is " + n + " and old is" + String(o)
}


println(defaultArgs(name:"李四"))

//如果只给了一个参数则未给出的参数使用默认值



//可变参数 类似于Java

func otherArgs(name:String , old:Int , other:String...)->String
{
    var rt2 = "name is " + name + " old is " + String(old)

    for str5 in other
    {
        rt2 += str5
    }

    return rt2
}
let str3 = otherArgs("李四",21, " 男"," 未婚"," 身体健康")
println(str3)

//保留函数体内对传入参数的修改
func case1(inout name:String , old:Int)->String
{
    name = "喵小喵"

    return "name is "+name+" old is " + String(old)
}

var name = "隔壁老王"
println(case1(&name,21))
println(name)


//函数的多态
var case2 :(inout String,Int)-> String

var case3 :(String,String...)->String


func myCase2(inout name:String,old:Int)->String
{
    return "case2 \(name) \(String(old))"
}

func myCase3(var name:String,other:String...)->String
{
    var str9:String = ""

    for str0 in other
    {
        str9 += str0
    }

    return name + str9
}

//初始化case2
case2 = myCase2
case3 = myCase3


var name0 = "隔壁老王"
println(case2(&name0 ,32))

println(case3("你好","小明","你出去"))

//函数调用
func mycase4(case2:(inout String,Int)->String , str:String)
{
    var name8 = ""
    println(case2(&name,40))

}

mycase4(case2,"hell0")


//函数嵌套
func myCase5(flag:Bool ,m:Int ,n:Int)->Int
{
    func method1()->Int{return m+n}

    func method2()->Int{return m-n}

    return flag ? method1() : method2()

}

println(myCase5(true,11,22))
println(myCase5(false,22,44))

控制台打印

my name is 张三
my name is 李四old is 29)
hello world

base 这个字符串共含有5个a 1个b  0个C 
名叫:张三 年龄22
name is 李四 and old is31
name is 李四 old is 21 男 未婚 身体健康
name is 喵小喵 old is 21
喵小喵
case2 隔壁老王 32
你好小明你出去
case2 喵小喵 40
33
-22

图一
图二
图三
图四
图五

Author:ruanjianjiagou@163.com 欢迎交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值