①函数
(有返回值)的定义格式:
注意:无论函数有无形参,必须得有”()"
func 函数名(形参列表) - >返回值类型{
//函数体
}
比如
func
sum(num1:
Int
,num2:
Int
) ->
Int
{
return num1+num2
return num1+num2
}
②没有返回值的函数
有三种写法
func 函数名(形参列表)->Void {
//函数体
}
比如
func
text1 (sum1:
Int
) ->
Void
{
print
(
"********
”)}
稍微简单点的写法
func 函数名 (形参列表) ->{
//函数体
}
func
text2 (sum1:
Int
) ->(){
print ( "******" )
print ( "******" )
}
最简单的写法
func 函数名(形参列表){
//函数体
}
③返回元组类型
swift 函数也可以返回元组函数
比如:
func
text3 (vanlue:
Int
) ->(name:
NSString
, age:
Int
){
if vanlue == 0 {
return ( "zhangsan" , 22 )
} else {
return ( "lisi" , 239 )
}
}
var perple = text3 ( 1 )
if vanlue == 0 {
return ( "zhangsan" , 22 )
} else {
return ( "lisi" , 239 )
}
}
var perple = text3 ( 1 )
perple
.
1
④ 外部参数名
一般情况下通过参数的名字就能够推断出这个参数的含义和作用
func addSudent(name:String,age:Int,Nob:Int
){
...
}
在函数的内部看参数名就能知道这三个参数的作用
但是在使用函数的时候,函数的第一个参数就不看不到参数的名字导致以后不知道此参数的含义
addStude
nt(“jack”,age:20,Nob:19)
为了解决这个问题,swift提供了外部参数名语法
外部参数名定义的格式为:
func 函数名(外部参数名 形式参数名:形式参数类型)->返回值类型{
函数体
}
这样添加上外部参数名之后在使用函数的时候就参数的头部就会显示其函数参数名字的信息了
⑤ swift中的默认参数值
swift中可以在定义函数时,给形参指定一个默认值,调用函数时,就可以不用给这个形参传值
比如:
func
addSudent(name:
String
,age:
Int
=
20
){
print ( " 添加学生 :name= \ ( name ),age= \ ( age )" );
print ( " 添加学生 :name= \ ( name ),age= \ ( age )" );
}
addSudent
(
"jack
”) //这样也不会报错,如果想修改age属性的值,可以这样:
addSudent
(
"jack"
,age:
34
)
而且默认情况下,函数的参数都是常量参数,不能在函数内部修改
func text(num:Int){
num = 10 //这样赋值是错得
}
如果想修改属性的参数 可以这样
func text(var num:Int){
num = 10 //这样赋值是错得
}
⑥ 输入输出函数
在C语言中,利用指针可以在函数的内部修改外部变量的值,但在swift中,利用输入输出参数,也可以在函数的内部修改外部变量的值,输入输出参数,顾名思义,能输入一个值进来,也可以输出一个值到外部
定义:在参数名前面加个inout关键字即可
比如交换两个变量的值
func
swap(
inout
num1:
Int
,
inout
num2:
Int
){
let c = num1
num1 = num2
num2 = c
}
var a= 10
var b= 20
let c = num1
num1 = num2
num2 = c
}
var a= 10
var b= 20
swap
(&
a
, &
b
)
注意:
1.传递实参时,必须在实参的前面加上&
2.不能传入常量货值字面量(比如10)作为参数值(因为他不可修改)
3.输入输出参数不能有默认值
4.输入输出参数不能是可变参数
5.输入输出参数不能再使用let var修饰