《从零开始学Swift》学习笔记(Day 19)——函数参数传递-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

《从零开始学Swift》学习笔记(Day 19)——函数参数传递

简介:
+关注继续查看

函数的语法格式如下:

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

    语句组

    return 返回值

}

关键字是func

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

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

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

函数定义示例代码如下:

1
2
3
4
5
6
funcrectangleArea(width:Double, height:Double) -> Double {
    let area = width * height
    return area    
}
  
print("320x480的长方形的面积:\(rectangleArea(320, height:480))")

 

传递参数 

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

  1. 使用外部参数名

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

1
2
3
4
func rectangleArea(Wwidth:Double, H height:Double) -> Double {
    let area = width * height
    return area
}


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

1
2
3
4
print
("320x480
的长方形的面积
:\(rectangleArea(W:320, H:480))")


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

  1. 省略外部参数名

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

1
2
3
4
funcrectangleArea(width:Double, _ height:Double) -> Double {
    let area = width * height
    return area
}


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

1
2
3
4
print
("320x480
的长方形的面积
:\(rectangleArea(320480))")


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

  1. 参数默认值

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

1
2
3
func makecoffee(type :String = "卡布奇诺") -> String {
    return "制作一杯\(type)咖啡。"
}

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

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


最后输出结果如下:

制作一杯拿铁咖啡。

制作一杯卡布奇诺咖啡。

 

  1. 可变参数

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

下面看一个示例:

1
2
3
4
5
6
7
func sum(numbers:Double...) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total
}


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

1
2
sum(100.02030)
sum(3080)


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


本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1746245,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
初步学习Swing
一直就想学习java的桌面编程,可惜直到现在因为是在unix上的原因并不需要java程序有界面,不过自己还是想好好学习学习。
662 0
前端学习 -- Css -- 定义列表
定义列表用来对一些词汇或内容进行定义 使用dl来创建一个定义列表 dl中有两个子标签 dt : 被定义的内容 dd : 对定义内容的描述 同样dl和ul和ol之间都可以互相嵌套 DOCTYPE html> ...
625 0
OC中 多参数省略函数的声明和实现
<div style="color:rgb(70,70,70); font-family:simsun; font-size:14px; line-height:21px; text-indent:2em"> <span style="word-wrap:normal; word-break:normal">OC开发中,我们也会发现会有类似于NSLog(</span>NSString *
1582 0
Python学习笔记:lambda表达式与函数式编程
1,lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式。lambda是一个表达式而不是一个语句。它能够出现在Python语法不允许def出现的地方。作为表达式,lambda返回一个值(即一个新的函数)。
1287 0
8434
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载