2022swift 面试大全

第五节 结构体、类、值类型、引用类型

2021-01-31  本文已影响0人  天明天

一. 结构体

1.在swift的标准库中绝大多数公开类型都是结构体,而枚举与类占很小一部分。

struct Date {
   var year:Int //存储属性
   var month:Int
   var day:Int
}
var date = Date(year:2020,month:02,day:26)//初始化成员
  1. 结构体的初始化器
struct Student{
   var name: String?
   var age : Int?
}

var stu = Student(name:"chen",age:16)//初始化方法 
var stu = Student() //初始方法 两个方法都可以
var stu = Student("name")
  1. 自定义初始化器
struct Point  {

   var  x :Int
   var y : Int

   init(x: Int,y:Int){
       self.x = x
       self.y = y 
    }
}

var p1 = Point(x : 10, y : 20)

print(MemoryLayout<Point>.size)//16字节
print(MemoryLayout<Point>.stride)//16
print(MemoryLayout<Point>.alignment)//8

二.类

1.类基础
class Point {
   var x: Int = 0 // 这里要给初始化值
   var  y : Int = 0
}

var p = Point()//无参数的初始化器可以调用成功。
2.结构体与类的本质区别
func textP&S{

 class Size{
      var width = 1
      var height = 2
   }

Struct Point{
     var x = 3
     var y = 4
  }
}

var ptr = malloc(1)
print(malloc_size(ptr)) //分配给16字节

*在 Mac 与 IOS 中 系统分配内存的大小 都是16的倍数。

3.值类型

var s1 = "123"
var s2 = s1
s2.append("234")
print(s1)//返回“123”
print(s2)// 123234

4. 引用类型 (类)

截屏2020-02-26下午3.46.08.png

5.值类型、引用类型的 let

struct Point {
 var x: Int
 var  y: Int
}

class Size {

    var width:Int
    var height:Int

   init(width :Int,height:Int){
   
        self.width = width
        self.hieght = height
   }
}
截屏2020-02-26下午6.03.49.png

6.嵌套类型

截屏2020-02-26下午6.23.27.png

三.方法,枚举、结构体、类里面都可以定义方法

1.在外部的方法函数,在枚举、结构体、类里面 的函数就叫做方法。

上一篇下一篇

猜你喜欢

热点阅读