zoukankan      html  css  js  c++  java
  • go 语言struct

    struct的作用:

      struct 其实就是用来自定义复杂的数据结构,来表示基本数据类型不能表示的数据类型。比如一个学生的各种属性(年龄、性别,姓名等)

    struct的定义 :

      type 标识符   struct{

       filed1 type       //filed1是字段,type标识字段的类型,可以多个字段,字段名不可重复

       filed2 type

       ...       ...

    }

    例:

    type student struct{
    	name string
    	age int
    	score int
    }
    

      通过上述定义,就自定义了一个名为student的数据类型,如何 使用呢?其实就相当于使用基本数据类型。

    func teststruct(){
    	var stu1 student  //定义一个名为stu1 类型为student的变量
    	stu1.age = 100   //访问student数据类型中的字段的方法是stu1.age,这行就是给变量赋值
    	stu1.name = "wang"
    	stu1.score = 120
    	fmt.Printf("%#v
    ",stu1) //打印输出结果
    }
    //输出结果是:
    //main.student{name:"wang", age:100, score:120}
    

      上面定义了一个普通变量,下面我来看怎么定义一个指针变量以及指针变量的使用。func teststructpoint(){

    	var stu *student   //定义指针变量
    	stu = new(student)  //给指针变量赋值,指针变量的值必须是地址。new(type)就是给stu分配类型为student的内存地址。或者这样定义也可以,先定义一个普通变量,把普通变量的地址赋值给stu.例:var stu1 student    stu = &stu1
    	(*stu).name = "lilili"
    	stu.age = 100     //stu.age 相当于 (*stu).age,这个是go的语法糖
    	stu.score = 200
    	fmt.Printf("%#v
    ",stu)
    }
    //输出结果
    //&main.student{name:"lilili", age:100, score:200}

      上面我们知道了struct的作用及定义方法,以及自定义类型以后的使用。那我们来总结一下,使用student类型时如何定义 

    • var stu Student //定义变量
    • var stu *Student = new (Student)  //定义指针变量并初始化
    • var stu *Student = &Student{} //定义指针变量并初始化

    访问方式如下:

    stu.age  或者

    (*stu).age

      

  • 相关阅读:
    Java和Flex积分误差(一个)
    分组统计查询(本章小结)
    crm使用soap删除实体
    宁可信其有,谎言重复千遍就会成为真理,性格可以被改变
    意想不到的一天,无法逃出的肖申克
    测试使用wiz来发布blog
    2013年7月4日星期四
    2013年7月3日星期三
    2013年7月2日星期二
    2013年7月1日星期一
  • 原文地址:https://www.cnblogs.com/wanghaijun999/p/8134936.html
Copyright © 2011-2022 走看看