zoukankan      html  css  js  c++  java
  • swift的struct本节描述结构的类型

    <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){
           //结构体是拷贝的对象,函数内部不能改动变量
            //须要改动。加keywordmutating,
        //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>


    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Django学习系列之Cookie、Session
    Django学习系列之CSRF
    Django学习系列之Form验证
    Django学习系列之结合ajax
    Logstash学习系列之插件介绍
    Logstash学习系列之基础介绍
    Kubernetes DNS安装配置
    Kubernetes网络配置
    kubernetes节点安装配置
    Kubernetes控制节点安装配置
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4837292.html
Copyright © 2011-2022 走看看