swift学习第十天:函数
函数的介绍
- 函数相当于OC中的方法
- 函数的格式如下
func 函数名(参数列表) -> 返回值类型 {
代码块
return 返回值
}
- func是关键字,多个参数列表之间可以用逗号(,)分隔,也可以没有参数
- 使用箭头“->”指向返回值类型
- 如果函数没有返回值,返回值为Void.并且“-> 返回值类型”部分可以省略
- import UIKit
- // 1.没有参数没有返回值
- func about() -> Void {
- print("iPhone7s Plus")
- }
- func about1() {
- print("iPhone7s")
- }
- about()
- let view : UIView
- // 2.有参数没有返回值
- func callPhone(phoneNum : String) {
- print("打电话给\(phoneNum)")
- }
- callPhone(phoneNum: "+86 110")
- // 3.没有参数有返回值
- func readMessage() -> String {
- return "吃饭了吗?"
- }
- print(readMessage())
- // 4.有参数有返回值
- func sum(num1 : Int, num2 : Int) -> Int {
- return num1 + num2
- }
- sum(num1: , num2: )
函数的使用注意
- import UIKit
- // 1.内部参数和外部参数
- // 内部参数:在函数内部可以看到的参数名称,称之为内部参数
- // 外部参数:在函数调用时,可以看到的参数,成之为外部参数
- // 默认情况下从第二个参数开始,既是内部参数也是外部参数
- // 如果希望将第一个参数也声明称外部参数,只需要在标识符前加上外部参数的名称即可
- func sum(num1 : Int, num2 : Int) -> Int {
- return num1 + num2
- }
- // 函数的重载:函数名称相同,参数不同(1.参数的类型不同 2.参数的个数不同)
- func sum(num1 : Int, num2 : Int, num3 : Int) -> Int {
- return num1 + num2 + num3
- }
- // 2.默认参数
- func makeCoffee(coffeeName : String = "拿铁") -> String {
- return "制作了一杯\(coffeeName)咖啡"
- }
- makeCoffee(coffeeName: "雀巢")
- makeCoffee(coffeeName: "猫屎")
- makeCoffee()
- // 3.可变参数:...会把外界传进来的参数放在数组中,在函数内部遍历数组,相加求和
- func sum(nums : Int...) -> Int {
- var result =
- for num in nums {
- result += num
- }
- return result
- }
- sum(nums: , , , , , )
- // 4.引用参数
- var m =
- var n =
- // 注意:默认情况形参都是常年
- //func swapNum(var m : Int, var n : Int) {
- // let temp = m
- // m = n
- // n = temp
- //}
- // swapNum(20, n: 30)
- // 如果形参前面有inout,则需要传递指针到函数内
- func swapNum( m : inout Int, n : inout Int) {
- let temp = m
- m = n
- n = temp
- }
- swapNum(m: &m, n: &n)
- print("m:\(m) n:\(n)")
- // 5.函数的嵌套使用(不常用)
- func test() {
- func demo() {
- print("demo")
- }
- print("test")
- demo()
- }
- test()
swift学习第十天:函数的更多相关文章
- swift学习第十五天:闭包
闭包 闭包的介绍 闭包和OC中的block非常相似 OC中的block是匿名的函数 Swift中的闭包是一个特殊的函数 block和闭包都经常用于回调 注意:闭包和block一样,第一次使用时可能不习 ...
- Swift学习笔记十五
自动引用计数(Automatic Reference Counting) 和OC一样,Swift用自动引用计数机制来跟踪和管理你应用程序的内存,大多数情况下,你不需要考虑自己管理内存,Swift会自动 ...
- Swift学习笔记十二
方法 方法就是和某种特定类型相关联的函数.类.结构体.枚举都可以定义实例方法和类型方法.类型方法和OC中的类方法类似. 结构体和枚举也可以定义方法是Swift与C/OC之间很大的一个区别,在OC中,只 ...
- Swift学习笔记十六:协议
Protocol(协议)用于统一方法和属性的名称,而不实现不论什么功能. 协议可以被类.枚举.结构体实现.满足协议要求的类,枚举,结构体被称为协议的遵循者. 遵循者须要提供协议指定的成员,如属性,方法 ...
- Swift学习之十四:闭包(Closures)
* 闭包(Closures) * 闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值. * 在Swift中的闭包与C.OC中的blocks和其它编程语言(如Python)中的lambdas ...
- Python学习第十篇——函数初步
def make_album(name,album_name,song_nums = 1): dict_album = {name:[album_name]} if int(song_nums) &g ...
- C++学习基础十六-- 函数学习笔记
C++ Primer 第七章-函数学习笔记 一步一个脚印.循序渐进的学习. 一.参数传递 每次调用函数时,都会重新创建函数所有的形参,此时所传递的实参将会初始化对应的形参. 「如果形参是非引用类型,则 ...
- swift学习笔记之—自定义函数的规则说明
原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_517.html 1,无返回值的函数 func test( ...
- Swift学习笔记十四:构造(Initialization)
类和结构体在实例创建时,必须为全部存储型属性设置合适的初始值. 存储型属性的值不能处于一个未知的状态. 你能够在构造器中为存储型属性赋初值,也能够在定义属性时为其设置默认值.下面章节 ...
随机推荐
- [TypeScript] Model Alternatives with Discriminated Union Types in TypeScript
TypeScript’s discriminated union types (aka tagged union types) allow you to model a finite set of a ...
- ELKstack 中文指南
https://www.elastic.co/downloads ELKstack 中文指南 .net Elasticsearch 学习入门笔记 一. es安装相关1.elasticsearch安 ...
- 基于jQuery的一组图片的滚动
css: .displayB{display:block;}.fl{float:left;}.fr{float: right;}.posAb{position: absolute;}.posRe{po ...
- BZOJ5137: [Usaco2017 Dec]Standing Out from the Herd(广义后缀自动机,Parent树)
Description Just like humans, cows often appreciate feeling they are unique in some way. Since Farme ...
- 【Codeforces Round #453 (Div. 2) A】 Visiting a Friend
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 维护最右端的端点就好. [代码] #include <bits/stdc++.h> using namespace st ...
- MySQLSocketPHPvimApache
原文:http://www.blogjava.net/asenyifei/articles/82575.html 自己装了一个MYSQL客户端,但却发现出现这样的错误: Can't connect t ...
- 洛谷 P1327 数列排序
P1327 数列排序 题目描述 给定一个数列{an},这个数列满足ai≠aj(i≠j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换? 输入输出格式 输入格式: ...
- bootstrap课程12 滚动监听如何实现(bootstrap方式和自定义方式)
bootstrap课程12 滚动监听如何实现(bootstrap方式和自定义方式) 一.总结 一句话总结:通过监听滚动的高,判断滚动的高是否大于元素距离顶端的距离 1.如何知道屏幕滚动的高? st=$ ...
- Logstash Json 过滤器插件
1. Json Filter 功能概述 这是一个JSON解析过滤器.它接受一个包含JSON的现有字段,并将其扩展为Logstash事件中的实际数据结构. 默认情况下,它将把解析过的JSON放在Logs ...
- Python 极简教程(六)运算符
运算符,我们日常生活中使用的加减乘除,都是运算符的一种.当然这种一般我们称为算术运算符,用于处理数字运算的. 但是在计算机语言中,还有很多的运算符.用于处理不用的情况. 主要有以下几类: 算术运算符 ...