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

swift的struct结构体类型介绍使用

发布时间:2020-12-14 02:09:29 所属栏目:百科 来源:网络整理
导读:span style="font-size:24px;"struct David { var x = 0;//定义一个结构体,两个字段x,y var y = 0;//初始值 //定义结构体的构造函数 init(){ //定义一个空构造函数,真正的构造函数,调用时候不带参数调用这里 //构造函数是以init 开头的,自动调用 // [[o
<span style="font-size:24px;">struct David {
    var x = 0;//定义一个结构体,两个字段x,y
    var y = 0;//初始值
    //定义结构体的构造函数
    init(){
        //定义一个空构造函数,真正的构造函数,调用时候不带参数调用这里
        //构造函数是以init 开头的,自动调用
        // [[oc alloc]init]不是构造函数
        println("in init");
        
    }
    init(x:Int,y:Int){
        self.x = x;//定义带有2个参数的构造函数,带双参数的时候调用这里
        self.y = y;
        println("in init(x:y:)")
        
    }
    
    //结构体有构造函数,没有析构函数
    func getCenter()->Int{
        return (x+y)/2;
    }
    
    //给现有的点x,y加偏移量
    //obj.addOffset(100,deltaY:)
   mutating func addOffset (deltaX:Int,deltaY:Int){
       //结构体是拷贝的对象,函数内部不能修改变量
        //需要修改,加关键字mutating,//mutating,可以修改构造函数内部变量
        x += deltaX;
        y += deltaY;
    }

};

func testDavid(){
    //定义一个结构体
    //结构体的定义是 结构体的名字(参数名:参数值)
    var d = David();//调用构造函数init()
    var s = David(x: 100,y: 200);//调用构造函数init(x,y)
    println("s.x = (s.x),s.y = (s.y)")
    
    let c = s.getCenter();//调用析构函数getCenter
    println("c is (c)");
    
    s.addOffset(100,deltaY: 200);//因为析构函数没有返回值,所以不能赋值给变量
    println("d is :(s.x)");
}

testDavid();//测试函数调用
</span>

(编辑:李大同)

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

    推荐文章
      热点阅读