Swift基础篇——函数
来源:互联网 发布:做淘宝主播赚钱吗 编辑:程序博客网 时间:2024/06/04 00:25
函数
import UIKit/*:函数* 格式func 函数名称(形参列表) ->返回值类型{代码}* Void == ()*/// 1.没有参数没有返回值func say() -> Void{ print("hello")}say()// 如果没有返回值可以简写func say1() -> (){ print("hello")}say1()func say2(){ print("hello")}say2()// 2.有参数没有返回值// Swift2.0开始, 会自动将形参列表的第二个参数名称作为标签// Swift2.0之前是没有这个特性的, 在Swift2.0之前如果需要显示标签需要在形参名称前面加上#func sum(num1: Int, num2: Int){ print(num1 + num2)}sum(10, num2: 20)// 3.没有参数有返回值func getNumber() -> Int{ return 998}print(getNumber())// 4.有参数有返回值func sum2(num1: Int, num2: Int) -> Int{ return num1 + num2}print(sum2(50, num2: 50))// 内部和外部参数/*:* 默认情况下所有形参都是内部参数, 也就是说只能在函数内部使用* 从Swift2.0开始会自动将形参列表的第二个参数名称作为标签, 也就是说从第二个参数开始, 参数的名称既是内部参数又是外部参数* 如何指定外部参数?*/func sum3(num1: Int, tag num2: Int){ print("num1 = \(num1), num2 = \(num2)") print(num1 + num2)}sum3(10, tag: 20)// 默认参数// 如果指定了默认值, 那么在调用方法的时候就可以不用传递数据, 如果不传递数据系统就会使用默认值, 如果传递了就会使用传递的值// 在其它语言里面, 默认值一般情况只能是最后一个参数, 但是Swift可以写在任何位置func joinString(str1: String, str2: String = "在", str3: String) -> String{ return str1 + str2 + str3}joinString("张三", str2: "在", str3: "北京")joinString("李四", str3: "深圳")// 常量参数和变量参数以及inout参数// 默认情况下所有形参都是常量参数, 不能在函数中修改形参的值// 如果想在函数中修改形参的值, 那么必须把形参变为变量参数// 和OC一样, 在函数中修改形参的值不会影响到外面实参的值// 如果想在函数中修改形参之后影响实参, 那么必须把形参变为inout参数//func swap(a: Int, b: Int)//{// let temp = a// a = b // 不能修改常量参数// b = temp//}//func swap(var a: Int, var b: Int)//{// print("a = \(a), b = \(b)")// let temp = a// a = b// b = temp// print("a = \(a), b = \(b)")//}func swap(inout a: Int, inout b: Int){ print("a = \(a), b = \(b)") let temp = a a = b b = temp print("a = \(a), b = \(b)")}var x = 10var y = 20print("x = \(x), y = \(y)")swap(&x, b: &y)print("x = \(x), y = \(y)")// 可变参数// 只要参数是可变参数, 就可以传递一个或多个值// 在其它语言中一般情况下可变参数只能是最后一个形参, 而Swift中可以写在任意位置, 但是为了提高代码的阅读性, 还是建议写在最后func sum4(nums: Int..., temp: Int) -> Int{ var sum = 0 for i in nums { sum += i } return sum + temp}sum4(1, 2, 3, temp: 10)// 函数嵌套// 将一个函数写到另外一个函数的函数体中, 外面称之为函数嵌套// 1.被嵌套的函数只能在父函数内部访问// 2.被嵌套的函数可以访问外部的变量// 应用场景: 两个函数之间依赖较强, 或者一个函数就只给另外一个函数使用// 例如: 对数组排序是一个函数, 交换变量又是一个函数, 他们就可以使用函数嵌套let value = 55func test(){ let number = 10 func demo() { print("----\(number), \(value)") } demo()}test()
0 0
- Swift基础篇——函数
- Swift基础篇——构造函数
- Swift基础篇——内外函数
- Swift基础2.1——函数
- Swift基础3.1——构造函数
- Snail—Swift基础学习之函数
- Swift基础3.2——重载构造函数
- Swift基础3.3——便利构造函数
- Swift 基础学习(函数)
- 【swift基础】07函数
- Swift基础 函数
- Swift基础 构造函数
- Swift基础篇——元祖
- Swift基础篇——分支
- Swift基础篇——可选类型
- Swift基础篇——循环
- Swift基础篇——数组
- Swift基础篇——字典
- Swift基础篇——循环
- cocos2d-x sqlite的读取和相关操作
- Swift基础篇——数组
- Swift基础篇——字典
- Swift基础篇——字符串
- Swift基础篇——函数
- 不改源码的方式实现osgearth当中placenode的中文支持
- 每天学点儿树莓派(三)——使用IDE提高效率
- Swift基础篇——构造函数
- Swift基础篇——setter和getter的使用
- LeetCode OJ 123 Best Time to Buy and Sell Stock III
- Swift基础篇——闭包
- Unity中HideInInspector和SerializeField
- Swift基础篇——懒加载