Swift 函数

作者: 追逐_chase | 来源:发表于2017-11-17 12:59 被阅读7次
Swift.png
函数的简单说明
  • 函数是一段完成特定任务的独立代码片段。
  • 在定义一个函数时,有多个或者一个数据类型的值,作为函数的输入,成为参数
  • 在一定某个类型的值作为返回值的时候,成为返回类型
  • 以func作为前缀,指定函数的返回类型时,用返回箭头 -> 后跟返回类型的名称的方式表示
//表示如下:
func 函数名(参数1:参数类型,参数2:参数类型,参数3:参数类型...) -> 返回值类型 {
    代码块
    return 返回值
}
函数参数与返回值
  • 无参数无返回值的函数
func hanshu() -> Void {
    
    print("没有参数,没有返回值");
}

hanshu();
//打印结果: 没有参数,没有返回值

//简写的 没有返回值的话  直接简写

func hanshu(){
    
    print("没有参数,没有返回值");
}

hanshu();

//注意:严格上来说,虽然没有返回值被定义,hanshu() 函数依然返回了值。没有定义返回类型的函数会返回一 个特殊的 Void 值。它其实是一个空的元组(tuple),没有任何元素,可以写成()。


  • 无参数有返回值的函数
func sayHello() ->String {
    
    return "hello 你好";
}

let hello = sayHello();
print(hello);
//打印结果: hello 你好

  • 有参数 没有返回值
//name:参数名 String:参数类型
func personName(name:String) {
    
    print("我是\(name),哈哈");
}

personName(name: "CC");

//打印结果:我是CC,哈哈
  • 有参数 有返回值,多个参数用 , 分开
func sum(num1:Int,num2:Int,num3:Int) -> Int {
    
    return  num1+num2 + num3;
}

let numSum = sum(num1: 10, num2: 20, num3: 30);
print(numSum);

//打印结果:60

  • 返回一组数据的函数 多重返回值函数
//元祖 是保存一组数据的,这个函数 返回值是一个  元祖
func tulpNum(PersonName:String,PersonAge:Int,PersonSex:String) -> (name:String,age:Int,sex:String){
    
    
    return (PersonName,PersonAge,PersonSex);
}


let tulp =  tulpNum(PersonName: "CC", PersonAge: 20, PersonSex: "男");
tulp.name;
//打印是 “CC

//参数是数组 返回是元祖
 func minMax(array: [Int]) -> (min: Int, max: Int) {
     var currentMin = array[0]
     var currentMax = array[0]
     for value in array[1..<array.count] {
         if value < currentMin {
             currentMin = value
         } else if value > currentMax {
             currentMax = value
} }
     return (currentMin, currentMax)
 }


let arrayTulp = minMax(array: [1,2,3,10,5,9]);

print(arrayTulp.min);
print(arrayTulp.max);
//打印结果是 : min是:1
              max是:10 

函数参数标签和参数名称
  • 指定参数标签
    • 可以在函数名称前指定它的参数标签,中间以空格分隔
func someFunction(argumentLabel  parameterName: Int) { 
// 在函数体内,   parameterName 代表参数值
}

func greet(person: String, from hometown: String) -> String {
    return "Hello \(person)!  Glad you could visit from \(hometown)."
}
print(greet(person: "Bill", from: "Cupertino"))
// 打印 "Hello Bill! Glad you could visit from Cupertino."

  • 忽略参数标签
    • 不希望为某个参数添加一个标签,可以使用一个下划线( _ )来代替一个明确的参数标签。
func someFunction(_ firstParameterName: Int, secondParameterName: Int) {
// 在函数体内,firstParameterName 和 secondParameterName 代表参数中的第一个和第二个参数值
}
someFunction(1, secondParameterName: 2)
  • 默认参数
    • 某些情况,如果没有传入具体的参数,可以使用默认参数
func makecoffee(type :String = "卡布奇诺") -> String {
    return "制作一杯\(type)咖啡。"
}

let coffee1 = makecoffee("拿铁")
// "制作一杯拿铁咖啡。"
let coffee2 = makecoffee()
// 打印:"制作一杯卡布奇诺咖啡。
  • 可变参数
    • swift中函数的参数个数可以变化,它可以接受不确定数量的输入类型参数
    • 它们必须具有相同的类型
    • 我们可以通过在参数类型名后面加入(...)的方式来指示这是可变参数
func sum(numbers:Double...) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total
}

sum(100.0, 20, 30)
sum(30, 80)
//注意: 一个函数最多只能拥有一个可变参数。
  • 引用类型(指针的传递)
    • 默认情况下,函数的参数是值传递.如果想改变外面的变量,则需要传递变量的地址
    • 必须是变量,因为需要在内部改变其值
    • Swift提供的inout关键字就可以实现
 // 函数一:值传递
  func swap(var a : Int, var b : Int) {
    let temp = a;
    a = b;
    b = temp
   print("a:\(a), b:\(b)")
  }
   var a = 10
  var b = 20
  swap(a, b: b)
  print("a:\(a), b:\(b)")
  // 函数二:指针的传递
  func swap1(inout a : Int, inout b : Int) {
  let temp = a
    a = b
    b = temp
    print("a:\(a), b:\(b)")
}

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


函数的类型
// 函数类型 (Int, Int, Int) -> Int

//函数类型: 参数类型 和返回值类型 组成
func sum(num1:Int,num2:Int,num3:Int) -> Int {

    return  num1+num2 + num3;
}


//函数类型作为参数
func exen(n1:Int,n2:Int,n3:Int,fun:(Int,Int,Int) -> Int) -> Void{
    
    let result = fun(n1,n2,n3);
    print(result);
    
}

exen(n1: 10, n2: 10, n3:30,fun: sum);


//函数类型作为返回值


func getFunc() -> (Int,Int,Int) -> Int{
    return sum;
}
let value1 = getFunc();
value1(20,30,20);

//打印: 70


//编辑器根据
 1.函数的名称分别函数
 2.根据外部参数名称 分别函数
3.根据 参数类型 + 返回值类型 = 函数类型 来区别


相关文章

  • Swift学习笔记(二)

    Swift函数 Swift函数包含参数类型和返回值类型 函数定义 Swift使用关键字func定义函数。 函数定义...

  • Swift中的标准函数

    Swift中的标准函数 Swift中的标准函数

  • Swift の 函数式编程

    Swift の 函数式编程 Swift の 函数式编程

  • 10.函数(function)

    函数 kotlin_函数 swift_函数

  • swift 函数

    Swift 函数 函数声明: 告诉编译器函数的名字,返回类型及参数。 函数定义: 提供了函数的实体。Swift 函...

  • swift学习笔记②

    Swift学习笔记 - 文集 语法篇 一、函数 函数定义 Swift 定义函数使用关键字 func,functio...

  • #6 函数

    swift functions - 极客学院 swift的函数和JS的函数基本类似,有几点不同的是: swift中...

  • iOS知识点-9.Swift 是面向对象还是函数式的编程语言?

    Swift Basics Swift 是面向对象还是函数式的编程语言? Swift既是面向对象的,又是函数式的编程...

  • Swift高阶函数解析

    一、锲子 最近在学习Swift过程中发现,Swift有不少高阶函数,这些函数为Swift支持函数式编程范式提供了强...

  • swift 临时

    //// ViewController.swift// Swift01_函数//// Created by ...

网友评论

    本文标题:Swift 函数

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