• swift函数_11_函数的嵌套使用


    //: Playground - noun: a place where people can play
    
    import UIKit
    
    //---函数参数名----//
    
    //1.局部参数名:在函数的内部使用-->形参名
    //同一个函数的局部参数名不能相同
    func sum(firstNum:Int, secondNum:Int) -> Int {
        
        return firstNum + secondNum
    }
    
    sum(1, secondNum: 2)
    
    //2.外部参数名
    func rectangleArea(W Double, H height:Double) -> Double {
        
        return width * height
    }
    //如果指定了外部参数名,则调用函数时要使用外部参数名
    rectangleArea(W:17.4, H:20.1)
    
    //3.局部参数名和外部参数名最好不要重名,可以用_代替一个明确的参数名
    func sendQQ(fromName from : String, _ to : String) -> String {
        return "(from)给(to)发送了条QQ信息"
    }
    
    sendQQ(fromName:"Kathy", "Tom")
    
    
    //4.函数带默认参数:使调用函数更灵活,如果传值没使用传递的值,如果没有实参,则使用默认值
    func makeCoffee(type : String = "cuppcinno") -> String {
        
        return "制作了一杯(type)咖啡"
    }
    
    makeCoffee()
    makeCoffee("NestCafe")
    
    //如果一个函数有多个参数,则带默认值的参数一般放在最后面
    func studentInformation(stuNo no : String, stuName name : String, stuAge age : Int = 15) -> String {
        
        return "information:no((no)),name((name)),age((age)))"
        
    
    }
    
    studentInformation(stuNo: "1000", stuName: "kathy")
    //: Playground - noun: a place where people can play
    
    import UIKit
    
    //---函数参数名----//
    
    //1.局部参数名:在函数的内部使用-->形参名
    //同一个函数的局部参数名不能相同
    func sum(firstNum:Int, secondNum:Int) -> Int {
        
        return firstNum + secondNum
    }
    
    sum(1, secondNum: 2)
    
    //2.外部参数名
    func rectangleArea(W Double, H height:Double) -> Double {
        
        return width * height
    }
    //如果指定了外部参数名,则调用函数时要使用外部参数名
    rectangleArea(W:17.4, H:20.1)
    
    //3.局部参数名和外部参数名最好不要重名,可以用_代替一个明确的参数名
    func sendQQ(fromName from : String, _ to : String) -> String {
        return "(from)给(to)发送了条QQ信息"
    }
    
    sendQQ(fromName:"Kathy", "Tom")
    
    
    //4.函数带默认参数:使调用函数更灵活,如果传值没使用传递的值,如果没有实参,则使用默认值
    func makeCoffee(type : String = "cuppcinno") -> String {
        
        return "制作了一杯(type)咖啡"
    }
    
    makeCoffee()
    makeCoffee("NestCafe")
    
    //如果一个函数有多个参数,则带默认值的参数一般放在最后面
    func studentInformation(stuNo no : String, stuName name : String, stuAge age : Int = 15) -> String {
        
        return "information:no((no)),name((name)),age((age)))"
        
        
    
    }
    
    studentInformation(stuNo: "1000", stuName: "kathy")
    
    //5.可变参数:Swift可以接收不确定数量的输入参数,这些参数必须有相同的类型
    //func 函数名(可变参数名:可变参数类型...)->返回值 {}
    func addNumbers(Numbers:Double...) -> Double {
        var total : Double = 0
        
        for number in Numbers {
            
            total += number
        }
        
        return total
        
        
    }
    
    //实参的个数是可变的
    addNumbers()
    addNumbers(10.5)
    addNumbers(10.0,34.5,23.6)
    //一个函数中最多只能有一个可变参数,可变参数放在参数列表的最后
    
    //6.常量参数和变量参数
    //函数的参数默认为常量,如果想在函数体中改变参数的值,要将其设置为变量
    func changeAge(var age : Int) -> Int {
        
        age += 5
        
        return age
    }
    
    var myAge = 20
    changeAge(myAge)
    print(myAge)
    
    //7.函数的参数传递
    //两种形式:值传递(值类型)引用传递(引用类型)
    //值传递代表建立一个实参的副本,形参的改变不会影响到实参
    //引用传递就是传递变量的地址,函数中对形参的改变实际就是对实参的改变
    
    func swap(inout a : Int, inout b : Int) {
        
        let temp = a
        a = b
        b = temp
    }
    
    var one = 1, two = 2
    
    swap(&one, &two)
    print(one)
    print(two)
    
    //inout参数实现了引用传递,类似于C语言中的指针
    //inout参数不能是可变参数,也不能有默认值,不能再被var,let所标记
    时光见证了成长,还很无知,我想一点点幼稚转为有知!
  • 相关阅读:
    Django(四)
    Django(三)
    Django(二)
    Django 基础篇
    jQuery
    JDK,JRE,JVM区别与联系
    webdriver API中文文档
    selenium及webdriver的原理
    JAVA IO流结构图
    抽象工厂与工厂方法的区别
  • 原文地址:https://www.cnblogs.com/foreveriOS/p/5559092.html
Copyright © 2020-2023  润新知