概括:
1.func 函数名(参数变量:类型,参数变量:类型......)//函数--常量参数
2.func 函数名(var 参数变量:类型,......){} //函数 -- 变量参数
3.func 函数名(参数名 类型......){} //函数 -- 可变参数
4.func 函数名 (参数变量:变量,参数说明 参数变量:变量)//函数 -- 外部参数名
5.func 函数名(inout 函数变量 类型) //函数 输入输出参数
6.func 函数名 (参数变量:类型,参数说明 参数变量 : 类型)-> 类型 // 函数返回值 -- 元组
7.func 函数名 (参数变量 : 类型) -> 类型{} // 函数返回值 -- 函数
1.函数 -- 常量参数
func 函数名(参数变量:类型,参数变量:类型){}
1.func 是函数关键字
2.{} 函数体
3.参数变量是默认常量类型,不能再函数函数体里面直接修改
即func A(value:String) 与 func A(let value:String)写法是相同的,即value是常量。
eg:
/*
1:func 函数关键字
2.两个参数变量 value 和value 都是常量 不能改变
3.SayHello(“hello”,“swift”)调用函数的方法
*/
func SayHello(value:String,value1:String){
var str = value + “ ”+value1
print(str)
}
SayHello("hello","swift")
运行结果
hello swift
注意点:
-----------------------错误写法-------------------------
func SayHello(value:String,value1:String){
value = "AA"//错误写法在函数中参数变量默认是常量类型不能修改
}
2. 函数 -- 变量参数
func 函数名(var 参数变量:类型){}
说明
1.func 函数关键字
2.var 参数变量 : 类型 表示参数变量是可变变量,不是常量,可以任意修改
eg:
func SayHello(var value:String){
value = "AA" //value 是被var修改,value是可变变量
println(value)
}
SayHello("hello")
运行结果:AA
3.函数 -- 参数默认值
func 函数名(参数值:类型 = 默认值){}
说明
1.func是函数的关键字
2.如果参数值,不赋值,参数值就采用默认值
例子
func SayHello(value:String = "AA"){
println("value = \(value)")
}
SayHello(value:"10")//带参数
SayHello()//不带参数
运行结果
value = 10
value = AA
3.函数 -- 可变参数
func 函数名(参数名 类型){}
说明:
参数名 类型 说明 该参数可以接触N个参数
eg:
func SayHello(value:Double){
for temp in values{
println(“temp =\ (temp)”)
}
}
SayHello(1.1,1.2,1.3)
运行结果
temp = 1.1
temp = 1.2
temp = 1.3
4:函数 -- 外部参数名
func 函数名(参数变量:类型,参数说明 参数变量:类型)
说明:
1.函数中的第一个不需要参数说明
2.参数说明+参数名 : 类型,构成一个参数
调用方法
函数名(参数值,参数说明:参数值,参数说明:参数值)
eg:
//joinStr value1 : String是一个参数
func SayHello(value:String,joinStr value1:String){
var str = value + value1
println(“String = \(str)”)
}
SayHello("hello",joinStr:"Swift")
运行结果
str = hello Swift
5.函数 输入输出参数
func 函数名(inout 函数变量 类型)
说明:input修辞的变量函数内部可以直接修改,其外部可以获取到。
eg:
func SayHello(inout value:String){
value = "Hello Swift"
}
var str = "hello"
SayHello(&str) //此时传递 字符串的地址
println(str)
运行结果:Hello Swift
6.函数返回值 -- 元祖
/*
func 函数名(参数变量:类型,参数说明 参数变量:类型)-》类型
1:func 函数关键字
2.->类型,返回类型
*/
eg://---------返回 元组
func SayHello(value:String,nums Value1:String)->(String,String){
return(value,value1)
}
var (A,B) = SayHello("hello",nums:"swift")
println("A = \(A),B = \(B)")
运行结果
A = hello,B = swift
7:函数返回值 -- 函数
//自加函数
func Add(num : Int)->Int{
return num+1
}
//自减函数
func zj(num : Int)->Int{
return num -1
}
//定义返回函数类型
func SayHello(num:Bool)->(Int)->Int{
//其中(Int)->Int 返回参数为整形,返回值为整形的函数
return num ? add :zj
}
var num = 10
var fun :(Int)->Int = SayHello(num>5);
num = fun(num)
println("num\(num)")
运行结果:num = 11