栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Golang:Golang结构体声明与使用

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang:Golang结构体声明与使用

Golang结构体声明与使用 一.struct结构体特征
  1. go中的结构体有点类似于其他编程语言中的对象
  2. go中的结构体可以用.语法访问里面的属性/字段
  3. go中的结构体别名和属性/字段首字母需大写否则别的包无法访问此结构体类似于private和public
  4. go中的结构体属性/字段重复赋值会覆盖之前的值
  5. go中的结构体是值类型,不是引用类型
  6. go中的结构体如果在使用json转义的情况下,想要发送给客户端的属性/字段不是大写必须加上tag标签如json:xxx属性/字段名
二.struct结构体声明和使用
  1. 结构体声明的四种方法
  2. 结构体是值类型,传入函数中改变结构体不会影响外部的结构体,如果要改变外部结构体则需要传入地址
    1>这里并不会修改到名称
    2>传入地址后可以修改名称
  3. go中的结构体如果在使用json转义的情况下,想要发送给客户端的属性/字段不是大写必须加上tag标签
    1>这里没有使用tag标签字段名称都是大写
    2>这里添加tag标签
    3>转成json后字段名变成了小写
三.代码块
package main

import (
	"encoding/json"
	"fmt"
)

// 妖怪结构体
type Monster struct {
	Name string `json:"name"`
	Age  int	`json:"age"`
	Arms string `json:"arms"`
}
// 改变结构体函数
func changeStruct(s *Monster) {
	s.Name = "修改你的名称"
}

func main() {
	// 结构体声明1
	monster := Monster{"孙悟空", 500, "金箍棒"}
	fmt.Println(monster)
	// 结构体声明2
	var monster1 Monster
	monster1.Name = "猪八戒"
	monster1.Age  = 500
	monster1.Arms = "九齿钉耙"
	fmt.Println(monster1)
	// 结构体声明3
	var monster2 Monster = Monster{}
	monster2.Name = "红孩儿"
	monster2.Age  = 200
	monster2.Arms = "火尖枪"
	fmt.Println(monster2)
	// 结构体声明4
	var monster3 Monster = Monster{"铁扇公主", 400, "芭蕉扇"}
	fmt.Println(monster3)
	// 看看是否改变结构体的name
	changeStruct(&monster3)
	fmt.Println(monster3)

	// 结构体转json字符串
	jsonStr, err := json.Marshal(monster2)
	if err != nil {
		panic("json转换失败")
	}
	fmt.Println(string(jsonStr))
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号