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)
类和结构体在实例创建时,必须为全部存储型属性设置合适的初始值. 存储型属性的值不能处于一个未知的状态. 你能够在构造器中为存储型属性赋初值,也能够在定义属性时为其设置默认值.下面章节 ...
随机推荐
- 【Django】ContentType组件
目录 理解 表结构 使用 @ 好,现在我们有这样一个需求,我们的商城里有很多的商品,然而节日要来了,我们要搞活动. 那么,我们就要设计优惠券,优惠券都有什么类型呢?满减的.折扣的.立减的.等等等... ...
- celery work logging 问题
celery 的日志里只输出日志 不输入标准打印
- windows查看硬件信息系统信息
rem 查看cpu wmic cpu list briefrem 查看物理内存wmic memphysical list briefrem 查看逻辑内存wmic memlogical list bri ...
- LightOJ 1291 Real Life Traffic
Real Life Traffic Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on LightOJ. O ...
- 几个不错的开源的.net界面控件
转自原文 几个不错的开源的.net界面控件 (转) 几个不错的开源的.net界面控件 - zt 介绍几个自己觉得不错的几个开源的.net界面控件,不知道是否有人介绍过. DockPanel Suite ...
- 兔子--ps中的基本工具总结(ps cs5)
矩形选框工具 椭圆选框工具 单行选框工具 单列选框工具 移动工具 套索工具柜 多边形套索工具 磁性套索工具 魔棒工具 高速选择工具 裁剪工具 切片工具 切片选择工具 吸管工具 颜色取样器工具 标尺工具 ...
- QTemporaryDir及QTemporaryFile建立临时目录及文件夹(创建一个随机名称的目录或文件,两者均能保证不会覆盖已有文件)
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址:本文标题:QTemporaryDir及QTemporaryFile建立临时目录及文件夹 本文地址: ...
- 传输资料在100MB以上的 传输介质选择
传输资料在100MB以上的 硬盘-->千兆局域网-->硬盘 硬盘-->USB3.0-->硬盘 硬盘-->数据线-->硬盘 传输速率 USB 的理论传输值 USB2. ...
- vmware-虚拟机播放器的下载、安装
如果是在window下安装的话: 1.下载vmware: 到官网下载免费个人版本 https://my.vmware.com/cn/web/vmware/free#desktop_end_user_c ...
- go pointer
go pointer package main import "fmt" type Mutatable struct { a int b int } func (m Mutatab ...