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

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

概述函数方法属性 从本节开始将叙述swift函数,方法,属性等特性。 函数(Functions) 函数是用来完成特定任务的独立的代码块。你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被“调用”。这个是Swift语言的解释,主要是描述了函数的一个特征。函数以关键字func开始, 然后是函数名称、参数 最后是返回类型。 func someFunction(par 函数、方法,属性

从本节开始将叙述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
方法(Methods)
方法是与某些特定类型相关联的函数,方法分为实例方法和类型方法。类、结构体、枚举都可以定义实例方法;实例方法为给定类型的实例封装了具体的任务与功能。实例方法是被类型的某个实例调用的方法。你也可以定义类型本身调用的方法,这种方法就叫做类型方法。声明结构体和枚举的类型方法,在方法的func关键字之前加上关键字static。类可能会用关键字class来允许子类重写父类的实现方法。其实简单来说实例方法就一定要有实例(这包括类,结构体,枚举),但是类型方法(和Java中应该叫静态方法一样)不需要通过新建实例来调用方法。
// 实例方法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.centersquare.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这点比较冗余,其实这几出来直接叫方法(函数也可以)更好,更容易让人接受。函数多返回值和函数类型的使用将带来很大的便利。

总结

以上是内存溢出为你收集整理的Swift学习笔记——函数、方法,属性全部内容,希望文章能够帮你解决Swift学习笔记——函数、方法,属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1081237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存