美文网首页
Struct结构体

Struct结构体

作者: Caesar_emperor | 来源:发表于2020-04-23 15:45 被阅读0次

    一.Struct的基本用法为 True,则逻辑 NOT 条件 False,否则为 True。

    type Person struct {
     Name string
     Age  int
     sex string
    }
    

    --初始化定义值的五种方式--

    func main() {
    --关键字的键值对--
     p1 := Person{
      Name: "ck",
         Age:  20,
    }
    --直接传值--
     p2 := Person{
      "CK",
      21,
      "male",
    }
    --通过new函数分配一个指针,此处P的类型为*Person--
       type Student struct{
            Name string
       }
     var stu2 *Student = new(Student)<=> p3 :=new(Person) /    var stu2 *Student= &Student{}<=>stu2 := &Student{}
    --通过*--
     var p4 *Person =&Person{
      Age:20,
      Name:"hua",
    }
    --先创建再赋值--
     var p5 Person
     p5.Name="hua"
     p5.Age=18
     p5.sex="80"
    **注意:传值使用上面的传关键字的键值对方式可以不用全部传入,但如果直接传值需要与结构体一一对应**
     p1.Age = 25 //修改value
     fmt.Println(p1,p2,p3,p4,p5)
    }
    ==>struct上,未赋值,则以0输出
    

    二.struct做为map的键

    type Person struct {
     Name string
     age int
    }
    func main(){
     m := map[Person]int{
     Person{"ck",29}: 10,
    }
    fmt.Println(m)
    }
    

    三.嵌套

    当被嵌入结构中的某个字段与当前struct中已存在的字段同名时,编译器从外向内逐级查找所有层次的匿名字段,直到发现目标或者报错。

    type Person struct {
     Age  string
     Name string
    }
    type User struct {
     Person
     Age int
    }
    func main() {
     u := User{
      Person: Person{
       Age:  "20",
       Name: "strq",
    }, //第一个person是user结构体内的;第二个person是person的一个单独结构体
         Age: 22,
    }
    fmt.Println(u.Name) // ck
    }
    

    相关文章

      网友评论

          本文标题:Struct结构体

          本文链接:https://www.haomeiwen.com/subject/wmjaihtx.html