zoukankan      html  css  js  c++  java
  • 《从零开始学Swift》学习笔记(Day 19)——函数参数传递

    原创文章,欢迎转载。转载请注明:关东升的博客

     

    函数的语法格式如下:

    func 函数名(参数列表) -> 返回值类型 {

        语句组

        return 返回值

    }

    关键字是func。

    多个参数列表之间可以用逗号(,)分隔,也可以没有参数。

    使用箭头“->”指示返回值类型。返回值有单个值和多个值。如果函数没有返回值,则“-> 返回值类型”部分可以省略。

    如果函数有返回值,就需要在函数体最后使用return语句;如果没有返回值,则函数体中可以省略return语句。

    函数定义示例代码如下:

    func rectangleArea(Double, height:Double) -> Double {
    
        let area = width * height
    
        return area   
    
    } 
    
    print("320x480的长方形的面积:(rectangleArea(320, height: 480))") 

    传递参数 

    介绍几种不同形式的参数。 

    1. 使用外部参数名

    为每个参数提供一个可以在函数外部使用的名称,称为外部参数名,修改rectangleArea函数的定义如下:

    func rectangleArea(W Double, H height:Double) -> Double {

        let area = width * height

        return area

    }

    在局部参数名之前给一个“外部参数名”,用空格分隔。定义代码中的W和H就是外部参数名。调用代码如下:

    print("320x480的长方形的面积:(rectangleArea(W:320, H:480))")

    如果我们提供了外部参数名,那么在函数调用时,必须使用外部参数名,所以W和H不能省略。 

    1. 省略外部参数名

    Swift 2.0提供省略外部参数名可能,在定义函数时,使用下划线(_)表示外部参数名,示例代码如下:

    func rectangleArea(Double, _ height:Double) -> Double {
    
        let area = width * height
    
        return area
    
    }

    这样函数在调用时就可以省略外部参数名,代码如下:

    print("320x480的长方形的面积:(rectangleArea(320, 480))")

    在定义函数时第一个参数不需要使用下划线(_),默认第一个参数名是省略的,其他参数名要想省略则需要使用下划线(_)符号。 

    1. 参数默认值

    在定义函数的时候可以为参数设置一个默认值,当调用函数的时候可以忽略该参数。看下面的一个示例:

    func makecoffee(type : String = "卡布奇诺") -> String {

        return "制作一杯(type)咖啡。"

    }

    在调用的时候,如果调用者没有传递参数,则使用默认值。调用代码如下:

    let coffee1 = makecoffee("拿铁")
    
    let coffee2 = makecoffee()  

    最后输出结果如下:

    制作一杯拿铁咖啡。

    制作一杯卡布奇诺咖啡。 

    1. 可变参数

    Swift中函数的参数个数可以变化,它可以接受不确定数量的输入类型参数,它们具有相同的类型。我们可以通过在参数类型名后面加入(...)的方式来指示这是可变参数。

    下面看一个示例:

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

    下面是两次调用sum函数代码:

    sum(100.0, 20, 30)

    sum(30, 80)

    可以看到每次传递参数的个数是不同的。 

    欢迎关注关东升新浪微博@tony_关东升。
    关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
                              ​
    更多精品iOS、Cocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
    智捷课堂论坛网站:http://51work6.com/forum.php

  • 相关阅读:
    oracle 数据库服务名怎么查
    vmware vsphere 6.5
    vSphere虚拟化之ESXi的安装及部署
    ArcMap中无法添加ArcGIS Online底图的诊断方法
    ArcGIS中字段计算器(高级计算VBScript、Python)
    Bad habits : Putting NOLOCK everywhere
    Understanding the Impact of NOLOCK and WITH NOLOCK Table Hints in SQL Server
    with(nolock) or (nolock)
    What is “with (nolock)” in SQL Server?
    Changing SQL Server Collation After Installation
  • 原文地址:https://www.cnblogs.com/iOS-Blog/p/4848450.html
Copyright © 2011-2022 走看看