美文网首页
swift中函数的几种定义方法

swift中函数的几种定义方法

作者: Alexander | 来源:发表于2019-02-13 15:27 被阅读7次

前言

在swft中有几种定义函数方法的方式,需要留意一下几个细节,学会之后在以后编码过程中写起来会更加得心应手和规范,接下来我们用最简单的几个例子来简述一下函数的定义.

一、常见的定义函数方式:

1, num1和num2表示的形参的内部函数名
func sum(num1: Int,  num2: Int) -> Int {
   return num1+num2
}
let su = sum(num1:10, num2: 20)

2,在开发过程中往往会给形参设置一个名词, 这样不能大大提高函数的可读性, a和b就是形参的外部函数名
func sum( a num1: Int, b num2: Int) -> Int {
   return num1+num2
}
let su = sum(a: 10, b: 20)
3,这种方式也是我在开发中常用的一种方式,直接在形参前面使用下划线“_”, 这样就会把函数名直接隐藏掉,有点是可使代码看起来更加简洁,方便
func sum( _ num1: Int, _ num2: Int) -> Int {
   return num1+num2
}
let su = sum(10,  20)

注意:
函数中定义形参默认是let类型, 所以不能直接去修改形参的值,假如需要修改参数的值,需要使用到inout关键字。

如:
错误写法: number默认是let类型,不能直接修改参数的值,这样写会报错
func sum(number: Int) {
  number += 1
}
var num3: Int = 5
sum(num: &num3) 
报错:
error: block.playground:11:9: error: left side of mutating operator isn't mutable: 'num' is a 'let' constant
    num += 3
    ~~~ ^

正确写法:使用关键字 inout 指向的是内存地址, 相当于C语言的&地址符号
func sum(number:inout Int) {
  number += 1
}
var num3: Int = 5
sum(num: &num3) // 结果是6

二、函数的参数不定:

  • 不定参数函数表示函数的形式参数的数量是不定的, 但是每个参数的类型必须是一样的, 不定形参类似是一个数组, 直接用for循环就能获取所有的值
// ... 表示数量不定, 在循环中表示闭区间
func sum(_ numbers: Int ...) -> Int {
  var num: Int = 0
    for n in numbers {
        num += n
    }
    return num
}
// 调用
let sumN: Int = sum(1, 2, 3, 4, 5) // 结果15

三、为参数设置默认值

  • 在开发中为了防止获取到的数据是空而发生闪退的情况,我们常常都会设置一个默认值, 在swfit中函数的参数也能设置默认值,如:
func sayHi(_ maleName: String = "大白", _ femaleName: String = "小C") -> String {
    
    return "\(maleName) say hello to \(femaleName)"
}

sayHi() // 结果:  大白 say hello to 小C
sayHi("李白") // 结果:  李白 say hello to 小C
sayHi("W", "Z")// 结果:  W say hello to Z

四、函数嵌套

  • 函数中定义一个或者多个函数
// 定义枚举
enum countType: Int {
    
    case diffent = 0
    case mul
}

// 注意: 这里的返回值是一个函数类型的返回值
func sum(count: countType) -> ((Int, Int) -> Int) {
    
    // 嵌套的函数1
    func diff(num1: Int, num2: Int) -> Int {
        
        return num2 + num1
    }
    
    // 嵌套函数2
    func mul(num3: Int, num4: Int) -> Int {
        
        return num3 * num4
    }
    
    // 定义一个函数类型的变量: (Int, Int) -> Int 类型
    var myType:(Int, Int) -> Int
    switch count {
        
        case .diffent:
            myType = diff
        case .mul:
            myType = mul
    }

    return myType
}


let vim = sum(count: .diffent)
总结

今天看到一篇文章,心里很是触动,总之吧,不管是哪个行业,都是需要不断地去学习,不断去提高自己的能力。淘汰的一定会是那些安于现状,不愿从舒适圈中走出来的人。所有的东西都要注意细节,着重基础。

相关文章

  • swift中函数的几种定义方法

    前言 在swft中有几种定义函数方法的方式,需要留意一下几个细节,学会之后在以后编码过程中写起来会更加得心应手和规...

  • Swift超基础语法(函数篇)

    函数 定义函数的格式 Swift中的函数与OC中的方法比较相似,其格式如下: Swift中的函数相比于OC方法更为...

  • Swift之函数

    回想一下java中方法的定义和调用 在Swift中函数的定义 常见的几种函数类型 *无参无返回值 *有参无返回值 ...

  • swift面向对象特性——方法

    方法其实就是定义在类中的函数,在OC中,只可以在类中定义方法。而在Swift中,方法可以在类、结构体和枚举中定义,...

  • Swift:基础(二十一)方法

    Swift 方法 Swift 方法是与某些特定类型相关联的函数 在 Objective-C 中,类是唯一能定义方法...

  • swift函数的几种类型

    在swift语言中,定义函数的一般可分为如下几种类型 1.基本类型 需要注意与c语言不同,swift中函数的使用往...

  • swift中自定义Log

    swift中自定义log输出日志,swift支持全局函数,不写在任何类中的方法可以当做全局方法使用。这里写在了Ap...

  • Swift学习笔记(二)

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

  • 第九节 Swift 函数使用

    建议在线实际运行下面的代码。 函数是对象的方法,方法实现了对象的功能。 定义 Swift 函数 func 是定义函...

  • 第七节 Swift 函数使用

    建议在线实际运行下面的代码。 函数是对象的方法,方法实现了对象的功能。 定义 Swift 函数 func 是定义函...

网友评论

      本文标题:swift中函数的几种定义方法

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