美文网首页
swift学习之函数

swift学习之函数

作者: 天蚕 | 来源:发表于2016-05-14 11:50 被阅读26次

函数定义

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

参数

swift函数参数默认的是输入参数或者常量参数,不允许在函数体中修改
如果想要在函数体中修改参数值,需要在参数列表对应的参数前面加var,将参数变成变量参数 (修改形参值其实没有多大卵用,swift3中将不在存在这样语法)
上述所说的修改都是指对于形参的修改,并不能影响到传输参数的本身的值,因为函数默认的都是值传递,型参值只是传入参数的值copy
如果想要在函数体内修改参数值影响到外部传入参数本身,需要在参数列表对应的形参前面添加inout关键字,参数传值就会变成址传递

//普通值传递函数
func valueFunction(title:String) -> Void {
    //title = "Hello World"//非法操作
}

//址传递函数
func addressFunction(inout title:String) -> Void {
    title = "Hello World"
}

var title = "Hello"
addressFunction(&title)
print(title)   //结果Hello World

返回值

swift中函数没有返回值可以直接省略-> Void或者-> ()Void()是等价的

函数类型

swift中的函数类型,可以当做一个自定义的数据类型,可以像基础数据类型那样,其实就是函数指针,代表的是具有特定参数列表,和特定返回值类型的一类函数
函数类型的格式
(参数类型列表) -> 返回值类型
valueFunction函数的类型就是String -> Void或者String -> ()
addressFunction函数的类型就是(inout String) -> Void或者(inout String) -> ()
swift函数返回值指向符->是右结合的
String -> String -> String等价于String -> (String -> String),代表的是有一个String类型的参数,并且返回一个带有一个String类型的参数返回值类型为String的一类函数
为了提高可读性,通常我们在使用函数类型时候都会选择自定义一个函数类型的别名出来
typealias 函数类型别名 = 要使用别名的函数类型

typealias AddressFunctionType = (inout String) -> Void
var address = "Hello"
func addressF() -> AddressFunctionType {
    return addressFunction
}
var addressFunc:AddressFunctionType = addressF()
addressFunc(&address)
print(address) //结果Hello World

相关文章

  • swift学习之函数

    函数的介绍 函数相当于OC中的方法 函数的格式如下 func是关键字,多个参数列表之间可以用逗号(,)分隔,也可以...

  • swift学习之函数

    当然在程序开发的时候最重要的是方法了在swift中如何创建、使用函数

  • swift学习之函数

    函数定义 参数 swift函数参数默认的是输入参数或者常量参数,不允许在函数体中修改如果想要在函数体中修改参数值,...

  • swift 学习之 函数

    // // main.Swift // Function // // Created by Danny Deng ...

  • Swift学习之函数

    1、Swift函数的类型 2、函数的区分 OC中不同的函数的区分仅仅靠函数名,例如:-(void)run:(NSS...

  • Swift5.x-闭包(中文文档)

    引言 继续学习Swift文档,从上一章节:函数,我们学习了Swift函数相关的内容,如函数的定义和使用、函数参数、...

  • swift学习笔记②

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

  • C++函数指针和Swift的函数对象

    C++函数指针和Swift的函数对象 在C++中学习函数指针式非常痛苦的事情,而在Swift里面学习函数指针则是非...

  • Swift高阶函数解析

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

  • Swift学习笔记(二)

    今天继续 Swift 的学习: 6、Swift 函数的表达方式

网友评论

      本文标题:swift学习之函数

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