函数

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)")

 

 

 

 

原文地址:https://www.cnblogs.com/zhanggui/p/3851104.html