函数

简介:

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

 

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


func join(string s1:String,toString s2:String,withJoiner joiner:String)->String

{

    return s1+joiner+s2

}

 

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



相关文章
|
1月前
|
存储 编译器 Serverless
C++系列十:函数
C++系列十:函数
|
4月前
|
机器学习/深度学习
函数的使用
任务1 统计小组一门课程的总分及平均分。
27 1
|
JavaScript 前端开发 API
h函数为什么叫h?
h函数为什么叫h?
198 0
|
JavaScript
什么是函数?
什么是函数?
|
编译器
【C++Primer】第6章:函数
【C++Primer】第6章:函数
【C++Primer】第6章:函数
函数(二)
今天我们来学习函数(二)的相关内容,视频我已经传到b站上了,现在把链接发给大家,大家可以在b站上观看。关于函数我在为大家补充变量作用域的知识点。它分为两个部分:1.局部变量 2.全局变量
81 0
函数(二)
九、函数初识
函数出现的意义 为了避免重复造轮子  所以出现了函数  就是把某一特定的功能封装起来 def  my_func(li):               def为关键字 定义函数    my_func  为函数名命名和      变量命名一样    for i in li:     count+...
907 0
傅里叶级数及奇欧函数的延拓
傅里叶级数及奇欧函数的延拓 傅里叶级数的定义出发,求解函数f(x)的解。 需要注意在对奇欧性函数延拓求解时的转换:
1714 0

热门文章

最新文章