Swift 结构体struct

//结构体是一个值类型

struct location{

    //属性

    var x:Double

    var y:Double

    

    //方法

    func test() {

        print("结构体中的test函数")

    }

    mutating func moveH(distance:Double){

        self.x+=distance

    }

    

    //结构体扩充构造函数

    //默认情况下,系统会为一个结构体生成一个默认的构造函数

    //构造函数是以init开头的,并且构造函数不需要返回值

    //在构造函数结束时候,必须保证所有的成员属性有被初始化

    

//这是系统默认构造的

//    init(x:Double,y:Double) {

//        self.x=x

//        self.y=y

//    }

    

    init(xyStr:String) {

        let array = xyStr.components(separatedBy: ",")

        let item1 = array[0]

        let item2 = array[1]

        

//        if let x=Double(item1) {

//            self.x=x

//        }

//

//        if let y=Double(item2) {

//            self.y=y

//        }

        

        self.x=Double(item1) ?? 0

        self.y=Double(item2) ?? 0

        

    }

    

}

 

//创建结构体对应的值

//var center=location(x: 20, y: 20) //调用系统默认的构造函数

var center=location(xyStr: "20,20")

 

center.test()

center.moveH(distance: 10)//水平移动10

print(center)//结构体属性变化结果 location(x: 30.0, y: 20.0)

原文地址:https://www.cnblogs.com/dhui69/p/11159104.html