Go结构体

2023-11-11

  • struct类型是值类型
  • Go语言没有class类型,只有struct类型
  • 定义
var stu Student
var stu *Student = new (Student)
var stu *Student = &Student{}
  • golang中的struct没有构造函数,一般可以使用工厂模式来解决这个问题
Package model
type student struct {
       Name stirng
    Age int
}

func NewStudent(name string, age int) *student {
return &student{
       Name:name,
       Age:age,}
}

Package main
S := new (student)
S := model.NewStudent(“tony”, 20)
  • make 用来创建map、slice、channel
  • new用来创建值类型

  • 匿名字段(解决字段冲突)

  • tag
  • 方法(不仅仅是struct有方法,任何自定义类型都可以有,值传递和指针传递)
  • 如果一个变量实现了String()这个方法,那么fmt.Println默认会调用这个
    变量的String()进行输出。
package main

import (
    "fmt"
)

//定义结构体
type Car struct{
    weight int
    name string
}

//结构体方法
func (this *Car) Run(){
    fmt.Println("running")
}


type Bike struct{
    Car//继承结构体--匿名结构体字段(还有组合的情况--有名结构体字段)
    circle int
}

//实现String方法
func (b *Bike)String() string{
    str := fmt.Sprintf("weight=[%d] name=[%s] circle=[%d]",b.weight,b.name,b.circle)
    return str
}
//结构体变量需要显示调用相关方法才会自动转换,不用区分指针传递和值传递
//如果没有显示调用,则需要receiver和变量类型完全一致,尤其是在使用String方法的时候
func main(){
    var a Bike
    a.weight = 100//使用父类字段
    a.name = "bike"
    a.circle = 2

    fmt.Println(&a)//使用String方法

    a.Run()//使用父类方法
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go结构体 的相关文章

  • Nginx配置白名单访问

    一 背景 在项目运行的时候 需要设置特定的访问权限 以拒绝其他可能存在的恶意访问 二 配置 2 1 关键字 允许访问关键字 allow 屏蔽访问关键字 deny 2 2 作用域 作用域如下 http 所有网站屏蔽IP server 单独网站
  • 字符串汇总

    一 字符串表达式计算 如 1 2 2 3 package TcpIO import java util Deque import java util LinkedList public class StringCalculate stati
  • 解决问题——无法连接到更新服务器。我们将稍后再试,你也可以立即进行检查。如果问题仍然存在,请确保你已连接到Internet

    安装AE跳出安装失败 错误 另一个安装程序当前正在运行 如需安装此产品 您必须将其关闭 请将其关闭 或者等待其他安装jieshu 错误代码 81 2 针对以上问题决定对Win10进行系统的更新 打开设置 更新与安全 进行更新 但是我的电脑更
  • 网段192.168.1.0/24是什么意思?

    192 168 1 0 24表示网段是192 168 1 0 子网掩码是24位 子网掩码为 255 255 255 0 用二进制表示为 11111111 11111111 11111111 00000000 这里为什么是24呢 就是因为子网
  • 公司计算机程序员英语作文,IT行业程序员英文简历模板范文

    英文简历的目的是帮助IT行业求职者获得面试机会 那你知道英文简历该怎么写吗 下面是学习啦小编为大家带来的程序员英文简历范文 相信对你会有帮助的 程序员英文简历范文 一 27 Hawkins Road Clarksboro New Jerse
  • Matlab 显示追踪点云 PLY格式

    用的matlab 可以用来显示文件夹下的所有ply点云 path strcat E WorkDatas argoverse tracking train1 dcdcd8b3 0ba1 3218 b2ea 7bb965aad3f0 lidar
  • 浅谈定时器及定时器在Vue项目中的使用

    对于一位前端工程师来说 说到定时器 想必都不陌生 无论是刚开始码农生活的新人还是多年工作经验的大牛 setTimeout setInterval 在项目中不可避免的都会使用 作为一个前端小菜鸟 在项目中的监控大屏的列表中需要用到setInt
  • 基于STM32CubeMX+FreeRTOS的Proteus仿真LCD1602

    LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块 它是由字符型液晶显示屏 LCD 控制驱动主电路HD44780及其扩展驱动电路HD44100 以及少量电阻 电容元件和结构件等装配在PCB板上而组成 一 LCD1602技术参数 显示
  • docker 无法访问web

    出于安全考虑 Linux系统默认是禁止数据包转发的 所谓转发即当主机拥有多于一块的网卡时 其中一块收到数据包 根据数据包的目的ip地址将数据包发往本机另一块网卡 该网卡根据路由表继续发送数据包 这通常是路由器所要实现的功能 要让Linux系
  • PaddleDetection使用教程

    详细的使用教程可以参考官方文档 一 安装说明 在安装PaddleDetection之前要先安装依赖项PaddlePaddle 你可以将其看作一个内核 有了它才可以安装PaddleDetection 首先 我们可以新建一个虚拟环境 命名为pa
  • python每日一题(leetcode/atcoder/nowcoder)

    背景 用leetcode每日一题 正好练一练python的一些写法吧 2021年2月28日 896 单调队列 判断数组是单增的或者是单减的 学习到一个sorted的用法 还有倒序的切片 class Solution def isMonoto
  • 微信小程序java+ssm+uniapp个人理财消费收支系统

    利用Java语言 SSM框架和mysql数据库等知识点 结合相关设计模式 以及软件工程的相关知识 设计一个ssm微信小程序的个人消费系统 来进行记录用户的信息 以及小程序信息的增删改查的功能 根据实现需求 小程序需完成这些基本功能 1 系统
  • C++ 多态(一) : 多态的构成条件、final、override、协变、析构函数的重写、抽象类

    文章目录 1 多态的定义和实现 多态的浅层理解 多态的构成条件 2 虚函数 虚函数的重写规则 虚函数重写条件的两个例外 1 协变 返回值不同 2 析构函数的重写 函数名不同 3 C 11 override 和 final override
  • JQ开发中遇到的问题(一)

    目录 目录 1 收藏与取消收藏切换 2 使用layui插件下拉选择渲染问题 1 收藏与取消收藏切换 说明 从接口中获取收藏状态 单击切换状态 如下图所示 开始状态 点击后状态 代码实现 1 全局定义一个变量 记录状态 var collect
  • wps 云文档的服务器地址,在WPS云文档保存、管理文件

    云文档上传和获取服务端调用 目录 1 获取APP剩余空间 获取APP剩余空间 接口说明 获取APP剩余空间 请求说明 参数说明参数参数类型是否必须说明access tokenstringrequiredaccess token appids
  • 相关系数和p值的含义

    相关系数就是两个变量之间的相关程度 1 lt 0负相关 r gt 0正相关 r2越接近1表示越相关 P值即概率 反映某一事件发生的可能性大小 统计学根据显著性检验方法所得到的P 值 一般以P lt 0 05 为显著 P lt 0 01 为非
  • [Unity] Unity 3D 中的旋转

    Unity 3D 中的旋转 一 Unity 3D 中 Rotation 在Unity中 旋转通常可以用一个三维向量 x y z 表示 实际上这是欧拉角 三个分量分别是绕x轴 y轴和z轴的旋转角度 要对一个GameObject进行旋转 可以直
  • HTCvive官方开发插件介绍

    相信各位小伙伴们在使用SteamVR Unity Plugin的过程中应该都遇到过这样的问题 获取设备很麻烦 设备在重启后indexID会改变从而导致设置好的左右手设备出现交错 无法与UGUI的事件系统连接导致无法使用UGUI等等很多问题

随机推荐

  • 关于windows本机开放端口后,同一个网络下的其他电脑telnet不通的解决办法

    前提 电脑A与电脑B均在同一个wifi下 本地电脑A 启动了一个kong网关 不管是什么应用 只要开启了一个监听端口就行 并且将docker里面的8000端口映射到本机的8000端口 此时在电脑A上的命令行运行 telnet 10 xxx
  • Java url转MultipartFile inputStream转File file转multipartFile

    Java url转MultipartFile inputStream转File file转multipartFile url转MultipartFile param url return throws Exception public st
  • linux kerne新版本编号?

    今天看到linux内核版本号都到3 4了 心中非常惊讶 为什么现在版本飞这么快了 于是一番google 终于找到了两篇文章 大家可以看看 Linux kernel version bumped up to 3 0 as 20th birth
  • VirtualBox 安装 增强功能

    在VirtualBox中安装好系统后 一般建议安装增强功能 因为一开始左上方的 视图 菜单中无缝模式和自动调整显示尺寸功能不可用 屏幕分辨率不够 无法与原系统共享剪贴板等 安装过程如下 点击VirtualBox的 设备 安装增强功能 此时桌
  • 解决 PHP Mysql 和 UTF8的问题

    http sixpoint me 443 solving php mysql utf8 issue 1 数据库 CREATE DATABASE db name CHARACTER SET utf8 DEFAULT CHARACTER SET
  • 【vue】页面缓存回跳后 侧边栏z-index层级导致页面快闪

    问题描述 公司使用的帆软报表页面没有加keepAlive缓存 在从一个弹框页面跳转到子报表后 切换路由回到当前页面是会继续展示弹框页面 但是页面由于z index层级问题会闪一下 问题排查 经过代码查看是因为导航栏小箭头使用了定位 z in
  • vue 的酒店⺠宿⽹站毕业设计源码250910

    基于Springboot的酒店民宿网站 摘 要 随着互联网和宽带上网的普及 Internet 网站在中国异军突起 并日益渗透到人们的日常生活中 网站是运用现代通信技术 计算机和网络技术进行的一种社会形态 其目的是通过互联网满足人们的需求 在
  • sql查询条件:闭区间和开区间(>=和>)效率分析

    A select from T Info Passengers where id gt 3245B select from T Info Passengers where id gt 3245 A 返回结果46956条 占用时间 毫秒 读取
  • bigdecimal加减乘除运算

    1 加法 Test public void testAdd 用double类型初始化BigDecimal对象 BigDecimal numA new BigDecimal 0 05 BigDecimal numB new BigDecima
  • 【数据结构】排序算法大总结

    文章目录 1 排序的概念及运用 2 常见排序算法的实现 2 1 插入排序 2 1 1 直接插入排序 2 1 2 希尔排序 2 2 选择排序 2 2 1 直接选择排序 2 2 2 堆排序 2 3 交换排序 2 3 1 冒泡排序 2 3 1 快
  • 图解redis五种数据结构底层实现(动图版)

    redis有五种基本数据结构 字符串 hash set zset list 但是你知道构成这五种结构的底层数据结构是怎样的吗 今天我们来花费五分钟的时间了解一下 目前redis版本为3 0 6 动态字符串SDS SDS是 simple dy
  • Spring Cloud Gateway网关工作原理、网关谓词和GatewayFilter工厂

    Spring Cloud Gateway 官方文档地址 https docs spring io spring cloud gateway docs current reference html Spring Cloud Gateway项目
  • 2021-01-25

    1 运算符优先级 2 条件判断 2 1 条件判断语句 if语句 执行的流程 if语句在执行时 会先对条件表达式进行求值判断 如果为True 则执行if后的语句 如果为False 则不执行 语法 代码块中保存着一组代码 同一个代码块中的代码
  • Sample Python Implementation using a Linked List

    直接贴代码 class Node object def init self value next node None self value value self next node next node class List object d
  • Netlist与RTL仿真结果不匹配

    Netlist 仿真和RTL比匹配主要是因为Netlist会存在不定态以及传播不定态 导致仿真不正确 不定态的来源 大多数设计在上电时不能保证cell的特定的逻辑状态 flip flop或memory根据环境因素 芯片间的工艺差异等可能会有
  • nacos访问地址无登录界面问题:版本2.2.3

    场景 访问 localhost 8848 nacos 地址时 没有弹出登录界面 提示 当前集群没有开启鉴权 请参考文档开启鉴权 此时左边菜单也没有权限控制模块 原因分析 这是新版本的配置文件中鉴权开关没有开启的原因 具体可以修改以下配置项
  • python-使用chinese_calendar判断是否节假日/工作日/调休日,-使用weekday()判断星期几

    最近在编写一个小程序时 需要判断是否为工作日 节假日以及星期几 发现chinese calendar这个第三方插件还蛮好用 可以用来识别是否工作日 datetime下的weekday 判断星期几 现做如下分享 一 工作日 节假日的判断 1
  • 区块链技术学习笔记——1.区块链介绍

    基本概念 区块链介绍 区块链是一个由多个参与方共同维护的并且持续增长的分布式数据库 通常也被称作分布式共享账本 可以促进在业务网络中记录交易和跟踪资产的过程 把多笔交易的信息以及表明该区块的信息打包放在一起 经验证后的这个包就是区块 每个区
  • vue常用插件集合

    vue常用插件集合 vue treeselect vue treeselect 是一个多选组件 具有对 Vue js嵌套选项支持 vue layer使用方法 官网 可拖动对话框 支持传入组件 element表单自动生成 Element Pl
  • Go结构体

    struct类型是值类型 Go语言没有class类型 只有struct类型 定义 var stu Student var stu Student new Student var stu Student Student golang中的str