微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift基础篇——函数

函数

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,31)">50))


// 内部和外部参数
/*: * 认情况下所有形参都是内部参数,也就是说只能在函数内部使用 * 从Swift2.0开始会自动将形参列表的第二个参数名称作为标签,也就是说从第二个参数开始,参数的名称既是内部参数又是外部参数 * 如何指定外部参数? */
func sum3(num1: Int,tag num2: Int)
{
    print("num1 = \(num1),num2 = \(num2)")
    print(num1 + num2)
}
sum3(20)

// 认参数
// 如果指定了认值,那么在调用方法的时候就可以不用传递数据,如果不传递数据系统就会使用认值,如果传递了就会使用传递的值
// 在其它语言里面,认值一般情况只能是最后一个参数,但是Swift可以写在任何位置
func joinString(str1: String,str2: String = "在",str3: String) -> String
{
    return str1 + str2 + str3
}
joinString("张三",str2: "北京")
joinString("李四",0)">"深圳")


// 常量参数和变量参数以及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)")
// a = b
//}

func swap(inout a: Int,inout b: Int)
{
    print("a = \(a),b = \(b)")
    let temp = a
    a = b
    b = temp
    print()
}

var x = 10
var y = 20
print("x = \(x),y = \(y)")
swap(&x,b: &y)
print()

// 可变参数
// 只要参数是可变参数,就可以传递一个或多个值
// 在其它语言中一般情况下可变参数只能是最后一个形参,而Swift中可以写在任意位置,但是为了提高代码的阅读性,还是建议写在最后
func sum4(nums: Int...,temp: Int) -> Int
{
    var sum = 0
    for i in nums
    {
        sum += i
    }
    return sum + temp
}
sum4(1,2,31)">3,temp: 10)

// 函数嵌套
// 将一个函数写到另外一个函数函数体中,外面称之为函数嵌套
// 1.被嵌套的函数只能在父函数内部访问
// 2.被嵌套的函数可以访问外部的变量
// 应用场景: 两个函数之间依赖较强,或者一个函数就只给另外一个函数使用
// 例如: 对数组排序是一个函数,交换变量又是一个函数,他们就可以使用函数嵌套
let value = 55
func test()
{
    let number = 10
    func demo()
    {
        print("----\(number),\(value)")
    }
    demo()
}
test()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐