swift学习语言基础--函数

函数

Swift函数与c和objective-c有些不同,C的函数表达式比较简单,oc则需要本地参数和外部参数设置名称,swift的参数提供默认值,简化了函数调用,并可以通过在输入输出函数在函数执行完毕之后修改传递的变量。
Swift中的每个函数都有一个类型,包括函数的参数类型和返回类型。您可以方便的使用此类型像任何其他类型一样,这使得它很容易将函数作为参数传递给其他函数,甚至从函数中返回函数类型。函数也可以写在其他函数中来封装一个嵌套函数用以范围内有用的功能

1、 swift函数结构如下:

func  函数名( 参数变量:类型 ,参数变量:类型...){}
    说明: 
        1: func 是函数关键字
        2:{} 函数体
        3: 参数变量是默认常量类型,不能在函数函数体里面直接修改
        即 func A (value:String)  与 func A (let value:String)写法是相同的,即value 是常量。
例如
func  SayHello(value :String,value1:String){
  let str = value+" "+value1
    print(str)
}
SayHello("hello","swift")
运行结果
hello swift
 

########注意
value 和value1 都默认是常量,相加,结果必定是常量,所以一定要用let接着,如果用var 会报错。
注意:value和value1不可再函数体里直接修改,如果是下面的写法就会报错:
func SayHello(value :String,value1:String){
value = "hello"
}
但是这并不是不可修改,看下面:

func 函数名( var  参数变量 : 参数类型 ) {}
    说明 
      1: func 函数关键字
      2: var 参数变量 :参数类型   表示参数变量是可变变量,不是常量类型,可以任意修改

例如
func  SayHello(var value :String){
    value = "hello" //value  是被var 修改了,value是可变变量
   print(value)
}

SayHello("test")
输出 hello

2、 可变参数

fun 函数名 (参数名:参数类型...){}
说明:
通过在变量类型名后面加入(...)的方式来定义可变参数
可变参数可以接受零个或多个值,可变参数的传入值在函数体中变为此类型的一个数组

func arithmeticMean(numbers: Double...) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total / Double(numbers.count)
}

3、外部参数名

func  函数名 ( 外部参数名  参数变量名:类型 ,外部参数名  参数变量名:类型)
  说明:
     1:外部参数名 + 局部参数变量名 : 类型 ,构成一个参数
     调用方法
      函数名(外部参数名 :传入值,外部参数名:传入值)

func sayHello(to person: String, and anotherPerson: String) -> String {
    return "Hello \(person) and \(anotherPerson)!"
}
print(sayHello(to: "Bill", and: "Ted"))
// prints "Hello Bill and Ted!"

你可能感兴趣的:(swift学习语言基础--函数)