• 函数


    func 函数名(形参:形参类型)->返回类形参调用:函数名(iz)

     

    //使用外部参数,使函数用途更加明确

     1 func join(string s1:String,toString s2:String,withJoiner joiner:String)->String
     2 
     3 {
     4 
     5     return s1+joiner+s2
     6 
     7 }
     8 
     9  
    10 
    11 println(join(string:"Hello",toString:"World",withJoiner:"."))

     

     

    //简写外部参数名

    //如果需要提供外部参数名,但是局部参数名已经定义好了,那么不需要写两次这些参数名

    //相反,只写一次参数名,并用#号作为前缀就可以了,这告诉swift使用这个参数名作为局部和外部参数名

    func containCharacter(#string: String,#characterToFind:Character)->Bool
    
    {
    
        for character in string
    
        {
    
            if(character==characterToFind)
    
            {
    
                return true
    
            }
    
        }
    
        return false
    
    }
    
    let containsAvee = containCharacter(string:"sdfasdfsd",characterToFind:"z")
    
    println(containsAvee)

     

     

     

    //默认参数值

    func jo1in(string s1:String,toString s2:String,withJoiner joiner:String=",")->String
    
    {
    
        return s1+joiner+s2
    
    }
    
    let str1 = jo1in(string :"hello",toString:"world")
    
     
    
    println(str1)
    
     

     

    //默认值参数的外部参数名

    // 当未给带默认值的参数提供外部参数名时,swift会自动提供外部名字,此时外部参数名与局部参数名一样,就像已经在局部参数名前写了#一样

    func jo3in(s1:String,s2:String,joiner:String=",")->String
    
    {
    
        return s1+joiner+s2
    
    }
    
     
    
    let st1 = jo3in("hello","world",joiner:"--")
    
     
    
    println(st1)

     

    //可变参数

    //传入可变参数的值在函数体内当做这个类型的一个数组。例如一个叫做numbers的Double...型可变参数,在函数体内可以当作一个叫numbers的Double[]型的数组常量

    //一个函数至多能有一个可变参数

    //可变参数必须放在参数表中最后的位置

    func aritheticMean(numbers:Double...)->Double
    
    {
    
        var total:Double = 0
    
        for number in numbers
    
        {
    
            total+=number
    
        }
    
        return total/Double(numbers.count)
    
    }
    
     
    
     
    
    println(aritheticMean(1.2,3.4,3.6,2.4))

     

    //常量参数和变量参数

    //通过在参数名前加关键字 var 来定义变量参数

    func alignRight(var string:String,count:Int,pad:Character) ->String
    
    {
    
        let amountToPad = count-countElements(string)
    
        for _ in 1...amountToPad
    
        {
    
            string = pad+string
    
        }
    
        return string
    
    }
    
    let originalString  = "Hello"
    
    let paddedString = alignRight(originalString,10,"-")
    
    println(originalString)
    
     
    
    println(paddedString)

     

     

    //输入输出参数

    //变量参数,正如上面所述,仅仅能在函数体内被更改,如果你想要一个函数可以修改参数的值,并且想要这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输出输出参数(In-Out Parameters)

    //定义一个输入输出参数,在参数前面加inout关键字

     

    //输入输出参数不能有默认值,而且可变参数不能使用inout标记,这个参数不能呗var或者let标记

     

    func swapTwoInts(inout a:Int,inout b:Int)
    
    {
    
        let temp = a
    
        a=b
    
        b=temp
    
    }

    //只能传入一个变量作为输入输出参数

    var someInt = 3
    
    var anotherInt = 7

    //当传入的参数作为输入输出参数时,需要在参数的前面加&,表示这个值可以被函数修改

    swapTwoInts(&someInt,&anotherInt)
    
     
    
    println("(someInt)(anotherInt)")

     

     

     

     

  • 相关阅读:
    python_面向对象——多态
    python_面向对象——封装
    python_面向对象——多继承
    python_面向对象——继承
    python_面向对象——对象间的组合关系
    python_面向对象——类之间的依赖关系
    python_面向对象——对象之间的关联关系
    python_异常处理
    python_反射:动态导入模块
    python_网络编程socketserver模块实现多用户通信
  • 原文地址:https://www.cnblogs.com/zhanggui/p/3851104.html
Copyright © 2020-2023  润新知