Swift学习笔记——函数、方法,属性

前端之家收集整理的这篇文章主要介绍了Swift学习笔记——函数、方法,属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

函数方法属性


从本节开始将叙述swift函数方法属性等特性。

  • 函数(Functions)
    函数是用来完成特定任务的独立的代码块。你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被“调用”。这个是Swift语言的解释,主要是描述了函数的一个特征。函数以关键字func开始,然后是函数名称、参数 最后是返回类型。
func someFunction(parameters) -> returnType{
   // 函数主体
}

值得注意的是,函数支持多重返回,即返回多个值:

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)
}

在 Swift 中,使用函数类型就像使用其他类型一样。例如,你可以定义一个类型为函数的常量或变量,并将函数赋值给它。下面的代码是指定了一个函数类型的变量。这个变量其实就是addTwoInts的另一种形式。有点类似了 typealias.

var mathFunction: (Int,Int) -> Int = addTwoInts
// 实例方法
class Counter { 
  var count = 0
  func increment() {
    ++count
  }
  func incrementBy(amount: Int) {
    count += amount
  }
  func reset() {
    count = 0
  }
}
 let counter = Counter()
 // 初始计数值是0
 counter.increment()
 // 计数值现在是1
 counter.incrementBy(5)
 // 计数值现在是6
 counter.reset()
 // 计数值现在是0

// 类型方法
class SomeClass {
  class func someTypeMethod() {
    // type method implementation goes here
  }
}
SomeClass.someTypeMethod()
  • 属性 (Properties)

    属性将值跟特定的类、结构或枚举关联。存储属性存储常量或变量作为实例的一部分,而计算属性计算(不是存储)一个值。计算属性可以用于类、结构体和枚举,存储属性只能用于类和结构体。其实属性就是其他语言中常说的成员变量,不过它与成员变量的不同在于,属性存在计算属性和存储属性两种类型。如下面的代码,在Rect中定义了一个计算属性的center,计算属性不直接存储值,而是提供一个 getter 和一个可选的 setter,来间接获取和设置其他属性或变量的值。

struct Point {
    var x = 0.0,y = 0.0
}
struct Size {
    var width = 0.0,height = 0.0
}
struct Rect {
    var origin = Point()
    var size = Size()
    var center: Point {
        get {
            let centerX = origin.x + (size.width / 2)
            let centerY = origin.y + (size.height / 2)
            return Point(x: centerX,y: centerY)
        }
        set(newCenter) {
            origin.x = newCenter.x - (size.width / 2)
            origin.y = newCenter.y - (size.height / 2)
        }
    }
}
var square = Rect(origin: Point(x: 0.0,y: 0.0),size: Size(width: 10.0,height: 10.0))
let initialSquareCenter = square.center
square.center = Point(x: 15.0,y: 15.0)
print("square.origin is now at (\(square.origin.x),\(square.origin.y))")
// 输出 "square.origin is now at (10.0,10.0)”

对比三者,我们可以见到发现,其实函数方法本就一体,个人感觉Swift这点比较冗余,其实这几出来直接叫方法函数也可以)更好,更容易让人接受。函数多返回值和函数类型的使用将带来很大的便利。

原文链接:https://www.f2er.com/swift/325026.html

猜你在找的Swift相关文章