初面网初面网

结构体

package main

import "fmt"

type Human struct {
	name     string
	age      int
	nickname string
}

func main() {
	var Tom Human
	Tom.name = "Tom"
	Tom.nickname = "Little Tom"
	Tom.age = 18
	fmt.Println(Tom)
}

结构体指针

package main

import "fmt"

type Human struct {
	name string
}

func main() {
	var tom = new(Human)
	tom.name = "tom"
	fmt.Println(tom)
}
// 输出结果:&{tom}
// &意味着这是个指针

匿名结构体

创建方式一


var tom = struct {
  name string
}{}
tom.name = "tom"
fmt.Println(tom)

创建方式二

var tom = struct {
  name string
}{
  name: "tom",  // 创建时直接赋值
}
fmt.Println(tom)

匿名字段

结构体的属性只写类型。由于只有类型,所以不能重复

type Human struct {
	string
  int
  string  // 这是错误的。已经有string
}

结构体文件

可以将结构体单独做成一个文件,方便复用。

注意!!只有首字母大写的结构体才是公有的,属性同理

这意味着小写的结构体无法被外部调用,小写的属性也无法被外部使用。

/* 这里在src目录下新建了structs作为包目录 */
// src/structs
package structs

type Human struct {
	Name string
	age  int
}

/**
src下的文件里导入外部的结构体
*/
package main

import (
	"02-learnGO/src/structs"
	"fmt"
)

func main() {
	var tom = structs.Human{}
	tom.Name = "tom"
	fmt.Println(tom)
}

更新于 2026/8/13