Swift--07函数使用

Swift--07函数使用,第1张

概述print("Swift函数使用") /*1、函数  使用func来声明一个函数,使用名字和参数来调用函数。使用 ->来指定函数返回值类型。 定义格式:func函数名(参数列表) ->返回值类型 {                函数体         } 调用格式:函数名(实参列表) 使用说明:无返回值时可以省略->及返回值类型,无参时()不能省略 */ /* -> Void*/ func pr

print("Swift函数使用")

/*1、函数

使用func来声明一个函数,使用名字和参数来调用函数。使用 ->来指定函数返回值类型。

定义格式:func函数名(参数列表) ->返回值类型 {

函数体

}

调用格式:函数名(实参列表)

使用说明:无返回值时可以省略->及返回值类型,无参时()不能省略

*/


/* -> VoID*/

func printHello() {

for _ in0 ..< 5 {

print("hello world")

}

}

printHello()

/*

hello world

*/


//2、默认从第二个参数开始带标签

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

return a + b

}

print(sum1(2,b:3)) // 5


//3、使用'_'可以忽略外部调用标签

func sum2(_ a:Int,_ b:Int) -> Int {

return a + b

}


print(sum2(1,4)) // 5


//4、可以添加不同的外部标签和内部参数

func sum3(num1 a: Int,num2 b:Int) -> Int {

return a + b

}

print(sum3(num1:2,num2: 3)) // 5


//5、函数可以作为参数传递

func calc(_ a:Int,b: Int,c:(Int,Int)->Int) -> Int {

return c(a,b);

}

var ret = calc(100,b:200,c: sum1)

print(ret)//返回的是sum1函数计算的结果300


//6、变参函数,参数会转换为数组形式

func averageValue(_ numbers:Double ...) -> Double {

var total:Double = 0.0

for numberin numbers {

total += number

}

return total/Double(numbers.count)//除数取double类型,使结果也为double类型。

}

print(averageValue(1,2,3,4,5))// 3.0


//7、使用元组来让一个函数返回多个值。该元组的元素可以用名称或数字来表示。

var array = [1,2,3,4,5]

func getMostInArray(_ a:[Int]) -> (min:Int,max: Int) {

var maxV = a[0]

var minV = a[0]

for valuein a[1..<a.count] {//for in

if value > maxV {

maxV = value

} elseif value < minV {

minV = value

}

}

return (minV,maxV)

}

let minMax = getMostInArray(array)//调用函数,返回的是array中的最大值和最小值组成的元组。

print("min =\(minMax.min),max =\(minMax.max)")// min = 1,max = 5


//8、函数可以作为返回值返回

func getFunc() -> (Int)->Int {

func add(_ num: Int) -> Int {

return num+10

}

return add //作为返回值返回

}

var addFunc = getFunc()

print(addFunc(5)) // 15

print(addFunc(5)) // 15


//注:函数虽然可以作为返回值返回,但是一旦含参,每调用一次,就会在上次计算的基础上自动累加计算,

func getFunc(_ number: Int) -> ()->Int {

var total = 0

func embedFunc() -> Int {

total += number

return total

}

return embedFunc

}


var funcOne = getFunc(10)

var funcTwo = getFunc(100)

print(funcTwo()) //100

print(funcOne()) //10

print(funcOne()) //20

print(funcOne()) //30

print(funcOne) //这样返回结果提醒为:(Function)



/*9inout

1、函数参数默认是不可变的,可以添加var声明为变量

2、也可使用inout修饰,告诉编译器该参数可以被修改

3、函数内部想要改变传递的参数,调用时需要在参数前加'&'

*/

func mySwap( _ a:inout Int,b:inout Int) {

let c = a

a = b

b = c

}

var a = 2,b =3

print("a =\(a),b =\(b)")//a = 2,b = 3

mySwap(&a,b: &b) // 实现了数值的交换

print("a =\(a),b =\(b)")// a = 3,b = 2


//10、参数默认值

func defaultValue(_ a:Int,b: Int =100) -> Int {

return a+b

}

print(defaultValue(10,b:20)) //如果设置了数值,按照设置的值来:30

print(defaultValue(10)) //如果没有赋值,按照默认值来计算:110



//11、函数重载

func add(_ a:Int,b: Int) ->Int {

print("int")

return a+b

}


func add(_ a:Double,b: Double) ->Double {

print("double")

return a+b

}


//系统会根据传入的参数个数及类型决定调用哪个参数

print(add(2,b:3)) //调用整型处理函数5

print(add(2.1,b:4.5)) //调用小数处理函数6.6

总结

以上是内存溢出为你收集整理的Swift--07函数使用全部内容,希望文章能够帮你解决Swift--07函数使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1062864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存