美文网首页
11 结构体

11 结构体

作者: LeeLeCoder | 来源:发表于2018-05-13 09:56 被阅读0次

    1. 结构体的介绍

    • 概念介绍
      • 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合
      • 结构体(struct)指的是一种数据结构
      • 结构体是值类型,在方法中传递时是值传递
    • 结构的定义格式
    struct 结构体名称 {
        // 属性和方法
    }
    

    2. 为什么需要结构体?

    • 先来看一个例子
      • 我们要计算平面坐标里某个点距点Center的距离是否小于200
      • 算起来很简单,勾股定理就搞定了:


        • 其中sqrt(n)用来计算n的平方根
        • pow(x, n)用来计算x的n次方
    let centerX : Double = 100
    let centerY : Double = 100
    
    func inRange(x : Double, y : Double) -> Bool {
        let disX = x - centerX
        let disY = y - centerX
    
        let dis = sqrt(pow(disX, 2) + pow(disY, 2))
    
        return dis < 200
    }
    
    let x : Double = 100
    let y : Double = 1000
    
    inRange(x, y: y)
    
    • 问题
      • 但是这样有一个不足,当我们需要比较很多个点和Center的距离的时候,这些数字并不能明确告诉我们它们代表的位置的意义,甚至我们都无法知道它们代表一个数字。
      • 如果我们可以像这样来比较位置:
        • 相比数字,它们看上去就会直观的多
        • 而这,就是我们需要自定义struct类型最直接的原因
    inRange(location1)
    inRange(myHome)
    
    • 使用结构进行改进
    // 初始化结构体
    struct Location {
        var x : Double
        var y : Double
    }
    
    // 创建结构体
    let location = Location(x: 90, y: 90)
    
    // 优化刚才的方法
    func inRange(location : Location) -> Bool {
        let disX = location.x - centerX
        let disY = location.y - centerY
    
        let dis = sqrt(pow(disX, 2) + pow(disY, 2))
    
        return dis < 200
    }
    
    inRange(location)
    

    相关文章

      网友评论

          本文标题:11 结构体

          本文链接:https://www.haomeiwen.com/subject/uyvqjxtx.html