Swift 4方法介绍和用法详细示例

本文概述

在Swift4中, 方法是与特定类型关联的函数。在Objective-C中, 类用于定义方法, 而在Swift4中, 我们具有用于类, 结构和枚举的方法。

实例方法

实例方法是与类, 结构或枚举的实例相关联的方法。实例方法写在该类型的主体内。

实例方法提供了与实例需求相关的功能, 还提供了访问和修改实例属性的功能。实例方法写在大括号{}中。它具有对类型实例的方法和属性的隐式访问。当调用该类型的特定实例时, 它将可以访问该特定实例。

句法:

func funcname(Parameters) -> returntype {
   Statement1
   Statement2
   ---
   Statement N
   return parameters
}

例:

class calculate {
   let a: Int
   let b: Int
   let res: Int
   init(a: Int, b: Int) {
      self.a = a
      self.b = b
      res = a + b
   }
   func tot(c: Int) -> Int {
      return res - c
   }
   func result() {
      print("Result is: \(tot(c: 20))")
      print("Result is: \(tot(c: 50))")
   }
}
let pri = calculate(a: 200, b: 300)
pri.result()

输出

Result is: 480
Result is: 450

在上面的示例中, 类calculate定义了两个实例方法:

  • init()定义为将两个数字a和b相加并将其存储在结果’res’中。
  • tot()用于从传递的’c’值中减去’res’。

本地和外部参数名称

在Swift4中, 函数可以描述其变量的局部和全局声明。函数和方法的局部和全局参数名称声明的特征是不同的。 Swift 4中的第一个参数由名为” with”, ” for”和” by”的介词引用, 以便于访问命名约定。

在Swift 4中, 你可以将第一个参数名称声明为本地参数, 将其余参数名称声明为全局参数名称。

让我们来看一个例子。在这里, ” no1″被声明为局部参数名称, ” no2″被用于全局声明, 并且可以在整个程序中进行访问。

例子

class divide {
   var count: Int = 0
   func incrementBy(no1: Int, no2: Int) {
      count = no1 / no2
      print(count)
   }
}
let counter = divide()
counter.incrementBy(no1: 100, no2: 3)
counter.incrementBy(no1: 200, no2: 5)
counter.incrementBy(no1: 400, no2: 7)

输出

33
40
57

方法中的自属性

方法的所有定义类型实例都有一个称为” self”的隐式属性。 “自我”属性或”自我”方法提供了用于访问实例本身的方法。

例子

class calculate {
   let a: Int
   let b: Int
   let res: Int
   init(a: Int, b: Int) {
      self.a = a
      self.b = b
      res = a + b
      print("Result Inside Self Block: \(res)")
   }
   func tot(c: Int) -> Int {
      return res - c
   }
   func result() {
      print("Result is: \(tot(c: 20))")
      print("Result is: \(tot(c: 50))")
   }
}
let pri = calculate(a: 100, b: 200)
let sum = calculate(a: 300, b: 400)
pri.result()
sum.result()

输出

Result Inside Self Block: 300
Result Inside Self Block: 700
Result is: 280
Result is: 250
Result is: 680
Result is: 650

通过实例方法修改值类型

在Swift 4中, 结构和枚举属于值类型, 不能通过其实例方法更改, 但我们可以通过”变异”行为来修改值类型。 Mutate将对实例方法进行任何更改, 并在执行该方法后返回到原始形式。同样, 通过’self’属性, 将为其隐式函数创建新实例, 并在执行后替换现有方法。

例子

struct area {
   var length = 1
   var breadth = 1
   func area() -> Int {
      return length * breadth
   }
   mutating func scaleBy(res: Int) {
      length *= res
      breadth *= res
      print(length)
      print(breadth)
   }
}
var val = area(length: 3, breadth: 5)
val.scaleBy(res: 2)
val.scaleBy(res: 20)
val.scaleBy(res: 200)

输出

6
10
120
200
24000
40000

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?