*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 欢迎交流