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

    package main;
    
    import "fmt"
    
    //结构struct
    
    //定义Person结构
    type Person struct {
    	name string;
    	age  int;
    };
    
    //结构里面还有一个匿名结构
    type Person2 struct {
    	name string;
    	age  int;
    	contact struct {
    		phone string;
    		addr  string;
    	}
    }
    
    //结构里的匿名字段
    type Person3 struct {
    	string;
    	int;
    }
    
    //嵌入结构,组合
    type Person4 struct {
    	Person;
    	phone string;
    	addr  string;
    }
    
    func main() {
    	a := Person{};
    	a.name = "test";
    	a.age = 27;
    	fmt.Println(a);
    
    	//简单初始化方式
    	b := Person{
    		name: "test2",
    		age:  24,
    	};
    	fmt.Println(b);
    
    	//调用函数A,这里是传递的值拷贝
    	A(b);
    	fmt.Println(b);
    
    	//调用函数B,这里传递的是地址
    	B(&b);
    	fmt.Println(b);
    
    	//对结构初始化的时候,一般直接用取地址符号
    	c := &Person{
    		name: "test3",
    		age:  25,
    	};
    	//在调用函数时,就不需要写取地址&符号
    	B(c);
    	fmt.Println(c);
    
    	//匿名结构
    	d := struct {
    		name string;
    		age  int;
    	}{
    		name: "test4",
    		age:  22,
    	};
    	fmt.Println(d);
    	e := Person2{
    		name: "test5",
    		age:  33,
    	};
    
    	//匿名结构的初始化
    	e.contact.phone = "1388888888";
    	e.contact.addr = "地址";
    	fmt.Println(e);
    
    	//注意字段的顺序
    	f := Person3{
    		"test6",
    		55,
    	};
    	fmt.Println(f);
    
    	//两个结构间的比较
    	g := f;
    	fmt.Println(g == f);
    
    	//嵌入结构的初始化
    	h := Person4{
    		Person: Person{name: "test7", age: 66},
    		phone:  "139999999",
    		addr:   "地址2",
    	};
    	fmt.Println(h);
    	h.Person.name = "哈哈";
    	h.Person.age = 99;
    	fmt.Println(h);
    	//可以对name和age直接操作
    	h.name = "haohao";
    	h.age = 88;
    	fmt.Println(h);
    }
    
    func A(p Person) {
    	p.age = 33;
    	fmt.Println(p);
    }
    
    func B(p *Person) {
    	p.age = 33;
    	fmt.Println(p);
    }
    

      

  • 相关阅读:
    du 命令
    iostat 命令
    sar 命令
    mkdir 命令
    time 命令
    date 命令
    history 命令
    vmstat 命令
    pmap 命令
    df 命令
  • 原文地址:https://www.cnblogs.com/jkko123/p/6807725.html
Copyright © 2011-2022 走看看