14、结构体

01、自定义类型 -- type

--使用内置的类型来定义一个自己的类型
    --自定义类型使用%T打印出来后,类型名称

--代码示例如下:
    // 自定义类型
    type MyInt int

    // 给类型起别名
    type anotherInt = int

    func main(){
	    var m MyInt  // 自定义类型
	    m = 100
	    fmt.Println("m值为:", m)  // m值为: 100
	    fmt.Printf("%T %d\n", m, m)  // main.MyInt 100

	    var n anotherInt  // 给类型起别名
	    n = 200
	    fmt.Println("n值为:", n)  // n值为: 200
	    fmt.Printf("%T %d\n", n, n)  // int 200

        // 在go的库中builtin中可以查看rune
        // rune就是类型别名 == int32
        // type rune = int32
	    var p rune  

	    p = '中'
	    fmt.Println("n值为:", p)  // n值为: 20013
	    fmt.Printf("%T %d\n", p, p)  // int32 20013
    }

02、结构体 -- struct 和 type

--type是用来自定义类型,但是如果想要定义一个包含多种基本类型的复杂类型仅靠type并不够。
  还需要type 和 struct配合使用

--使用type和struct关键字来定义结构体,具体代码格式如下:
    type 类型名 struct {
        字段名 字段类型
        字段名 字段类型
        …
    }
    --类型名:标识自定义结构体的名称,在同一个包内不能重复。
    --字段名:表示结构体字段名。结构体中的字段名必须唯一。
    --字段类型:表示结构体字段的具体类型。

--代码示例:
    type person struct{
        name string
        city string
        age int8
    }  
    // 相同属性的字段可以放置在一行
    type person struc{
        name, city string
        age int8
    } 
--使用结构体初始化变量:
    var 变量名 结构体类型

--代码示例:
    func main(){
	    type person struct{
		    name string
		    city string
		    age int8
		    gender string
		    hobby []string
	    }

	    var p1 person
	    p1.name = "liming"
	    p1.city = "shanghai"
	    p1.age = 18
	    p1.gender = "男"
	    p1.hobby = []string{"篮球", "足球", "双色球"}

	    fmt.Println(p1)
	    fmt.Println(p1.hobby)
    }
--代码结果:
    {liming shanghai 18 男 [篮球 足球 双色球]}
    [篮球 足球 双色球]

03、匿名结构体

--匿名结构体:就是直接把申明拿来用
    --var 结构体名 struct{
          ...
          ...
      }

--代码示例:
   func main(){
	    var s struct{
		    x string
		    y int
	    }

	    s.x = "liming"
	    s.y = 18

	    fmt.Println(s.x)
	    fmt.Printf("type:%T, value:%v\n", s, s)
   }

04、

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值