美文网首页
Swift函数的介绍

Swift函数的介绍

作者: 农夫_三拳 | 来源:发表于2019-06-13 19:14 被阅读0次
//: Playground - noun: a place where people can play

import UIKit

var str = "Hello, playground"

/*

在学习函数之前我们先来了解一下什么是函数,函数在oc语言中的体现

/* Swift 函数  */

函数的介绍

函数相当于oc中的方法

函数的格式如下:

func 函数名(参数列表) -> 返回值类型{

代码块

return 返回值

}

func 是关键字,多个参数列表之间可以用逗号(,)分离,也可以没有参数

使用箭头“->”指向返回值类型

如果函数没有返回值,返回值为void 并且“->返回值类型“部分可以省略

*/

//  1 没有参数  没有返回值的 func

func about()->Void{

print("xixihahahahha")

}

//  调用函数

about()

//  简单写法  如果没有返回值,void可以写成()

func about2()->(){

print("我又来了")

}

about2()

// 3:如果没有返回值,后面的内容可以都不写

func about3(){

print("我什么都没有")

}

// 4  有参数但是没有返回值

func callPhone(phoneNum: String){

print("我的电话号码")

print(phoneNum)

}

callPhone(phoneNum: "+86  159 7029")

// 5 没有参数  但是有返回值的这种

func readMessage()-> String{

return "要去看书啦";

}

readMessage()

var strr = readMessage()

print(strr)

// 5 有参数,有返回值的这种类型

func myName(name: String ,age : String)->String{

return name + age

}

myName(name: "songxinzhe", age: "24")

/*

函数的使用注意

注意一:外部参数和内参数

在函数内部可以看到的参数,就是内部参数

在函数外面可以看到的参数,就是外部参数

默认情况下,从第二个参数开始,参数名称即是内部参数也是外部参数

如果第一个参数也想要有外部参数,可以设置标签:在变量名前加标签即可

如果不想要外部参数,可以在参数名称前加_

*/

//  num1 和a是外部参数的名称

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

return num1 * num2 * num3

}

var result1 = ride(num1: 20, a: 4, b: 5)

//  方法的重载机制:  方法名称不同,但是参数不同,可以称为方法的重载

func ride2(num1:Int, _ num2 :Int)-> Int{

return num1 * num2

}

var result2 = ride2(num1: 20, 10)

/*

注意二: 默认参数

某些情况,如果没有传入具体的参数,可以使用默认参数

*/

func makecoffee(type : String = "拿铁")-> String{

return "制作一杯\(type)饮料"

}

let coffee1 = makecoffee(type: "毛屎咖啡")

let coffee2 = makecoffee()

/*

注意三: 可变参数

swift中函数的参数个数可以变化,它可以接受不确定数量的输入类型参数

它们必须具有相同的类型

我们可以通过在参数类型名后面加入(...)的方式来指示这是可变参数

*/

func sum(numbers :Double...)-> Double{

var total: Double = 0

for number in numbers{

total += number

}

return total

}

sum(numbers: 100.0,20,10,50)

sum(numbers: 30,80)

/*

注意四: 引用类型(指针的传递)

默认情况下,函数的参数是值传递.如果想改变外面的变量,则需要传递变量的地址

必须是变量,因为需要在内部改变其值

Swift提供的inout关键字就可以实现

对比下列两个函数

*/

// 函数一:值传递

func swap( a : Int, b : Int) {

var b = b

var a = a

let temp = a;

a = b;

b = temp

print("a:\(a), b:\(b)")

}

var a = 20

var b = 10

swap(a: a, b: b)

print("a:\(a),b\(b)")

// 函数二:指针的传递

func swap1( a : inout Int, b : inout Int) {

let temp = a

a = b

b = temp

print("a:\(a), b:\(b)")

}

swap1(a: &a, b: &b)

print("a:\(a), b:\(b)")

/*

函数的嵌套使用

swift中函数可以嵌套使用

即函数中包含函数,但是不推荐该写法

*/

//  函数的嵌套

let value = 55

func test(){

func demo(){

print("demo\(value)")

}

print("test")

demo()

}

test()//执行函数会先打印'test',再打印'demo'

相关文章

网友评论

      本文标题:Swift函数的介绍

      本文链接:https://www.haomeiwen.com/subject/evdefctx.html