Swift ——函数上部分

1、无返回值的函数 

func test(name: String){ print(name) }
test(name: "哈哈")

2、有返回值的函数

func test2(name: String)-> Bool { return true }
let isName = test2(name: "哈哈")
print(isName)

3、隐式返回 (如果整个函数体是一个单一表达式,那么函数会隐式返回这个表达式)

func sum1(a: Int, b: Int) -> Int{ a + b }

4、返回元组:实现多返回值

//例 1
func calulate (v1: Int ,v2: Int) -> (sum: Int , difference: Int ){
    return( v1 + v2 ,v1 - v2)
}
let res = calulate(v1: 30, v2: 15)
print(res.sum,res.difference)

//例 2
func exchange (v1: Int ,v2: Int) -> (Int ,Int){
    return (v2 ,v1)
}
let ex = exchange(v1: 30, v2: 35)
print(ex.0,ex.1)

5、参数标签 ( 可以添加标签,可以使用下划线_省略标签)

// at 为添加的标签
func gotoWork(at time: String){ print(time) }
//调用
gotoWork(at: "早上9点")

//省略标签
func sum(_ a: Int ,_ b:Int) -> Int { return a + b }
//此处没有显示变量名称
sum(20, 50)

6、可变参数

a:一个函数最多只能有一个可变参数

b:紧跟在可变参数后面的参数不能省略标签

// 例 1
func sum(numbers:Int...) -> Int {
    var total = 0
    for nu in numbers {
        total += nu
    }
    return total
}
let res = sum(numbers: 35,5,7,9)
print(res)

//例2 参数 name 标签不能省略
func test(_ numbers: Int... ,name: String ,_ age: Int){ }
    
test(3,35,5,8, name: "哈哈", 60)

7、输入输出参数 (inout)(可以在函数内部修改外部的值)

a:可变参数不能标记为 inout   b:inout 不能为默认值 c:  inout 参数只能传入可以被多次赋值的  d:inout 参数的本质是地址传递(引用传递)

func add(age: inout Int){ age += 1;}
var age = 20
add(age: &age)
print(age)//21

//值交换
func swapValues(_ a: inout Int , _ b: inout Int){
    (a , b) = (b ,a)
}
var a = 20
var b = 10
swapValues(&a, &b)
print(a,b) // 10 20

8、默认值 (参数可以有默认值)

a:C++的默认参数值有个限制 : 必须从右往左设置。由于Swift拥有参数标签,因此并没有此类限制

b:但是在省略参数标签时,需要特别注意,避免出错。

func check(name: String = "哈哈" ,age: Int ,job: String = "none"){
    print(name,age,job)
}
check(age: 10)
check(name: "呵呵", age: 24)
check(age: 30, job: "程序员")
结果
哈哈 10 none
呵呵 24 none
哈哈 30 程序员
//此次 middle 不能省略
func test(_ first: Int = 10 ,middle: Int , _ last: Int = 30){ }

Swift 自带的的print 函数 

public func print(_ items: Any..., separator: String = " ", terminator: String = "\n")

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值