Swift 方法

Swift 方法

在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

在上面的示例中,class 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属性

方法对于其定义的所有类型实例都有一个隐含的属性称为 ‘self’。Self属性或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中,结构体和枚举属于值类型,不能通过其实例方法进行修改,但是我们可以通过’mutating’行为来修改值类型。使用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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程