[对比OC学习swift]--day05函数

2016-02-26  本文已影响62人  一声雷

格式:

func  函数名称(形式参数1 : 形参类型 ,...)-> 返回值类型
{
             // 逻辑代码
}

// override代表是重写了父类的方法
override func  函数名称(形式参数1 : 形参类型 ,...)-> 返回值类型
{
             // 逻辑代码
}

一、无参数,无返回值

// 定义函数
func say() -> void               
{
       print("say hello")
}
// 函数调用
say()        



 几种简写形式:func say() -> ()          // void可以简写成:()
             func say()                // 或是直接省略


二、无参数,有返回值

func getNumber() -> Int
{
         return 998
}
print ( getNumber())

如果想要返回多个值,OC中的办法是使用指针来实现,在swift中我们使用的是元祖。

func getNumber() -> (Int , Int)
{
         return (1 , 998)
}

三、有参数,无返回值

func  sum (num1 : Int , num2 : Int)
{
       print (num1 + num2)
}
sum (10 , num2 : 20)
// 注意函数调用的这里
// swift2.0开始,默认将第二个参数名作为外部参数。
// 从第二个参数开始后面的参数名称作为标签名称。
如何指定标签
func  sum (Value1  num1 : Int , Value2  num2 : Int)
{
       print (num1 + num2)
}
sum (Value1 : 10 , Value2 : 20)
// 现在指定标签就是Value1、Value2了
如何忽略指定标签
func  sum (num1 : Int , _num2 : Int)
{
       print (num1 + num2)
}
sum (10 , 20)
// 本来默认第二个参数的名称是作为标签的,在参数名前面加了下划线后就忽略了。
常量形参和变量形参(也就是OC中所说的值传递和地址传递)
func change(inout  num1 : Int , inout num2 : Int)
{
       let  temp = num1
       num1 = num2
       num2 = temp
}
var n = 10
var m = 20
chang(&n , num2:&m)
// 这步之后 n = 20  ,  m = 10
可变参数
func sums (numbers : Int... )       // numbers必须制定类型,传入的是同种类型
    {
        var sum = 0
        for number in numbers         // numbers的本质是一个数组
        {
            sum += number
        }
        print(sum)
    }
sums(1,2,5)
func sums (numbers : Int... , value : Float)
    {
        var sum = 0
        for number in numbers
        {
            sum += number
        }
        print(sum)
        print(value)
    }
 sums(1,2,5, value: 11.3)
参数默认值
    func joinString(str1 : String, str2 : String = "哈哈", str3 : String)
    {
        print(str1,str2,str3)
    }
// 输出:你,我,他
joinString("你", str2: "我", str3: "他")
// 输出:你,哈哈,他      
joinString("你", str3: "我")

四、有参数,有返回值

func sum( num1 : Int , num2 : Int) -> Int
{
          return   num1 + num2
}
let   a = sum( 20 , mun2:10)
上一篇下一篇

猜你喜欢

热点阅读