Swift 学习总结四:类、结构体、属性、方法

Swift 结构体

Swift 结构体是构建代码所用的一种通用且灵活的构造体。

我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能。

与 C 和 Objective C 不同的是:

  • 结构体不需要包含实现文件和接口。

  • 结构体允许我们创建一个单一文件,且系统会自动生成面向其它代码的外部接口。

结构体总是通过被复制的方式在代码中传递,因此它的值是不可修改的。

        struct Student{
   
            //加入static关键字 只能通过Student直接获取
            static let name = "Mike"
            var height = 188
            var score = 88
            private static let habitDescript = "\(name)喜欢" 
            //只能struct 内部使用
            public var habit = "\(Student.habitDescript)排球"
        }
        let stu = Student()
        print(Student.name, stu.height, stu.score, stu.habit)

运行结果:Mike 188 88 Mike喜欢排球

克隆结构体
        struct Mark{
   
            var mark: Int
            init(mark: Int) {
   
                self.mark = mark
            }
        }
        let mark1 = Mark(mark: 90)
        var mark2 = mark1 //克隆一个
        mark2.mark = 100;
        print(mark1.mark, mark2.mark)

运行结果:90 100

结构体应用

在你的代码中,你可以使用结构体来定义你的自定义数据类型。

结构体实例总是通过值传递来定义你的自定义数据类型。

按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体:

  • 结构体的主要目的是用来封装少量相关简单数据值
  • 有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用
  • 任何在结构体中储存的值类型属性,也将会被拷贝,而不是被引用
  • 结构体不需要去继承另一个已存在类型的属性或者行为。

举例来说,以下情境中适合使用结构体:

几何形状的大小,封装一个width属性和height属性,两者均为Double类型。
一定范围内的路径,封装一个start属性和length属性,两者均为Int类型。
三维坐标系内一点,封装x,y和z属性,三者均为Double类型。

        struct Marks{
   
            var math: Int
            var english: Int
            var chinese: Int
            init(math: Int, english: Int, chinese: Int) {
   
                self.math = math
                self.english = english
                self.chinese = chinese
            }
        }
        let stuMark1 = Marks(math: 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值