加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift 实例方法&类型方法(九)

发布时间:2020-12-14 07:08:08 所属栏目:百科 来源:网络整理
导读:iOS交流群: 498143780 一起学习 override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view,typically from a nib. let counter = Counter() counter.reset() print (counter.count) // 0 counter.incrementBy

iOS交流群: 498143780 一起学习

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.

        let counter = Counter()
        counter.reset()
        print(counter.count) // 0
        counter.incrementBy(5)
        print(counter.count) // 5
        counter.increment()
        print(counter.count) //

        let counter1 = Counter1()
        counter1.incrementBy(5,numberOfTimes: 10)
        print(counter1.count) // 50

        let point = Point()
        print(point.isToRightOfX(1)) // 
        print(point.x)
    }
// 'Counter'类定义了三个個实例方法
    class Counter {
        var count = 0
        func incrementBy(amount: Int){
            count += amount // count + amount
        }
        func reset(){
            count = 0 // 重置 count = 0
        }
        func increment(){
            self.count++
        }
    }
// 稍微复杂一点的
    class Counter1 {
        var count: Int = 0
        func incrementBy(amount: Int,numberOfTimes: Int){
            count += amount * numberOfTimes
        }
    }
// 下面的例子中,`self`消除方法参数`x`和实例属性`x`之间的歧义
    struct Point {
        var x = 0.0,y = 0.0
        func isToRightOfX(x: Double) -> Bool{
            print(x)           // 1.0
            return self.x >= x // self.x = 0 x = 上边赋值1
        }
    }

/// 第一:struct没有继承的功能,而class是可以继承的,这是面向对象语言的核心能力,class当然会有这个能力。

/// 第二: 体现在内存使用上,struct是通过值传递,而class是通过引用传递的,举个简单的例子window对象一定会选择设计成class的实例,而不应该是struct的,通常我们一定不想在设备中拷贝出多个window对象来,对么?
解释来自:
http://blog.objcc.com/swift-struct-class/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读