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

格式:

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中所说的值传递和地址传递)
  • 默认情况下所有的形参都是常量形参,也就是说在函数中修改形参的值,是不会影响外部实参的值。
  • 变量形参,只需在形参名称前面加上inout即可。
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
  • inout修饰的参数是var类型的。


    示例
可变参数
  • 当一个函数不确定接收多少个参数的时候,就可以使用可变参数。
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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • import Foundation print("1","2","3","4"); //输出多个字符串,并用“**...
    风的低语阅读 3,297评论 0 0
  • 函数的介绍 函数相当于OC中的方法 函数的格式如下 func是关键字,多个参数列表之间可以用逗号(,)分隔,也可以...
    CoderLWG阅读 1,527评论 0 0
  • 01-常量与变量 学习swift第一步打印Hello World print("Hello World") swi...
    iOS_恒仔阅读 10,638评论 2 19
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 8,539评论 3 25
  • 我有点灰心了 也有点不安 我戴着帽子出门 我歇息在高高的山冈 我要回家了 回到苍茫的操场 回到天堂 那里曾苦苦把我...
    留子尧阅读 1,306评论 2 13