Go语言基础之结构体(Struct)的使用

字号+ 编辑: 呆头鹅甲 修订: 呆头鹅甲 来源: 利志分享 2015-02-07 11:40 我要说两句(1)

Go语言当中结构体是如何使用的呢? 本文在此讲述。

package main
import (
    "fmt"
    "reflect"
)
//跟C语言或其它语言一样,也有结构体struct。C语言中用关键词typedef来给结构体定义,Go中用的都是type。struct 语法格式:type typeName struct {...} ,按照对象的理解:struct就是类,函数就是方法。
type person struct {
    name string
    age  int32
}
type course []string
type student struct {
    name  string
    age   int32
    grade string
}
type class struct {
    student //匿名字段,struct
    course  //匿名字段,自定义类型
    int32   //内置类型做完匿名字段
    teacher string
}
type goods struct {
    name  string  "goods_name"
    price float64 "goods_price"
}
func main() {
    //单独声明和赋值
    var p1 person
    p1.name = "zengzhihai"
    p1.age = 40
    //直接声明和赋值
    p2 := person{"xiaogao", 20}
    //通过 field:value 的方式初始化,这样可以任意顺序
    p3 := person{age: 22, name: "xiaoqing"}
    fmt.Println(p1, p2, p3)
    stu1 := class{student: student{"xiaoming", 18, "高三"}, teacher: "杰伦"}
    //修改course字段
    stu1.course = make([]string, 6)
    stu1.course[0] = "math"
    stu1.course = append(stu1.course, "china")
    //修改匿名内置字段
    stu1.int32 = 5
    fmt.Println(stu1)
    g := &goods{"zhuihui", 40}
    s := reflect.TypeOf(g).Elem() //通过反射获取type的定义
    for i := 0; i < s.NumField(); i++ {
        fmt.Println(s.Field(i).Tag) // 讲tag打印出来
    }
}

作者群: 110824698 欢迎各位Go语言学习爱好者加入。

阅完此文,您的感想如何?
  • 鼓掌

    1

  • 鄙视

    0

  • 开心

    1

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.本站QQ群: 2702237

相关课文
  • go在arm上读取串口数据

  • Go语言截取指定字符串中间字符串的方法

  • go调用c使用比官方Cgo性能更加突出的c2goasm项目

  • Go语言框架之对比

我要说说
网上宾友点评
1楼 IP113.45.61.*的嘉宾 说道: 还好还好
Go语言基础之结构体(Struct)的使用