Golang 语法系列:结构体
结构体:相当于"类"
1.结构体声明
type [name] struct {[field_name] [field_type][field_name] [field_type]...
}//例子:type Person struct {name stringage int
}其中field_name可以省略
2.结构体的使用
1) 格式1
var person Person
person.name = "jack"
person.age = 10
2)格式2:通过键值对声明
person := Person{name: "jack",age: 12, // 这里的逗号要加
}
// name age字段可以省略
3)格式3:匿名结构体
person := Person{name stringage int}{name:"jack",age:12,
}
4)格式4:通过new()函数实例化
var person = new(Person) //@doto new()返回的是结构体变量的地址
fmt.Println(&person) //0xc000006028
fmt.Println(person) //&{}
5)格式5:通过&运算符直接对结构体进行取地址操作,然后完成实例化
person := &Person{}
person.name = "xxx"//@todo 说明:其实格式4,5,最合适的方式是通过 (*person).name = "xxx" 去赋值,只是Go语言自动帮助我们完成从地址取值的操作
3.结构体的构造方法
以上面的Person为例子,其实是通过一个函数来返回一个结构体指针实现的
func newPerson(name string, age int) *Person {return &Person {name: name,age: age,}
}//main()方法中可以这样调用
p := newPerson("jack", 10)
4.结构体的方法(其实不限于结构体,比如可以为string添加)
通过接受者Receiver实现,方法的格式如下:
func (struct_var_name StructName) 函数名(params)(return_type) {
}例子:func (p Person) eat(food string) {
}p := newPerson("jack", 10)
p.eat("鱼")
5.结构体的嵌套
type Person struct {name stringage intbodyInfo BodyInfo
}type BodyInfo struct {weight float64height float64
}p := Person{name: "jack",age: 10,bodyInfo: BodyInfo{weight: 100height: 170}
}p.bodyInfo.weight //@todo 访问嵌套结构体的属性
6. 结构体的继承
type Dog struct {age intanimal *Animal
}type Cat struct {age intanimal *Animal
}type Animal struct {name string
}dog := &Dog{age: 12,animal: &Animal{name: "myDog"}
}
相关文章:
Golang 语法系列:结构体
结构体:相当于"类" 1.结构体声明 type [name] struct {[field_name] [field_type][field_name] [field_type]... }//例子:type Person struct {name stringage int }其中field_name可以省略 2.结构体的使用 1) 格式1 var person Person p…...
关于iPad中的密码和触控ID的使用,看这篇文章就差不多了
序言 许多苹果iPad型号都有熟悉的密码系统和触控ID,这需要指纹扫描才能解锁设备。本指南向你展示如何使用iPad Air 2或更高版本、iPad Mini 3或更新版本以及iPad Pro设置或更改密码和触控ID指纹。 一些iPad Pro型号支持面部识别,并配备了面容ID而不是触控ID作为安全功能。面…...
Vue3之ref与reactive的基本使用
ref可以创建基本类型、对象类型的响应式数据 reactive只可以创建对象类型的响应式数据 接下来让我为大家介绍一下吧! 在Vue3中,我们想让数据变成响应式数据,我们需要借助到ref与reactive 先为大家介绍一下ref如何使用还有什么注意点 我们需…...
wsl内置Ubuntu使用 Dinky 与 Flink 集成
Dinky 与 Flink 集成 说明 本文档介绍 Dinky 与 Flink 集成的使用方法, 如果您是 Dinky 的新用户, 请先阅读 本文档, 以便更好的搭建 Dinky 环境 如果您已经熟悉 Dinky 并已经部署了 Dinky, 请跳过本文档的前置要求部分, 直接阅读 Dinky 与 Flink 集成部分 注意: 本文档基…...
”戏说“ 交换机 与 路由器
一般意义上说 老哥 这文章发表 的 东一榔头 西一锤 呵呵, 想到哪里就啰嗦到哪里 。 交换机: 其实就是在通道交换 路由器: 不光是在通道交换还要在协议上交换 下图你看懂了吗? (仅仅数据交换-交换机 协议…...
Linux pageset
1. 引言 在用户进程发生缺页异常时,Linux内核需要分配所需物理页面以及建立也表映射,来维持进程的正常内存使用需求。而对于分配物理页面仅依赖于buddy系统,对于小order页面的分配效率较低。因此Linux通过在每个cpu维护一个page链表ÿ…...
【C++之语法篇003】
C学习笔记---003 C知识开篇1、内联函数1.1、什么是内联函数?1.2、解决外部头文件,重复定义问题1.3、内联函数的总结 2、auto关键字2.1、auto的作用2.2、auto的总结 3、范围for3.1、什么是范围for?3.2、范围for的循环应用 4、指针空值关键字nullptr4.1、…...
Github代码仓库SSH配置流程
作者: Herman Ye Auromix 测试环境: Ubuntu20.04 更新日期: 2024/02/21 注1: Auromix 是一个机器人爱好者开源组织。 注2: 由于笔者水平有限,以下内容可能存在事实性错误。 相关背景 在为Github代码仓库配…...
Arrays工具类的常见方法总结
一、Arrays.asList( ) 1.作用:Arrays.asList( )方法的作用是将数组转换成List,将List中的全部集合对象添加至ArrayList集合中 2.参数:动态参数 (T... a) 3.返回值:List 集合 List<T> 4.举例: package com…...
物联网和人工智能的融合
物联网和人工智能的融合 1. 物联网和人工智能的融合2. 芯片技术的进步3. 安全和隐私保护挑战4. 软件开发和调试技术的创新5. 自动化和智能化趋势 1. 物联网和人工智能的融合 随着物联网和人工智能技术的快速发展,嵌入式系统将更多地与物联网设备和人工智能算法相结…...
【微信小程序】wxss 和 css 、wxml 和 html 区别
wxss 和 css 区别 wxss 支持小程序特有的选择器和 样式属性 scroll-into-view cover-view 等wxss 引入了 rpx 单位,可以根据屏幕宽度进行自适应,使得开发者可以更方便的处理不同尺寸屏幕的适配问题。wxss 背景图片只能引入外链,不能使用本地…...
python统计分析——使用AIC进行模型选择
参考资料:用python动手学统计学 1、导入库 # 导入库 # 用于数值计算的库 import numpy as np import pandas as pd import scipy as sp from scipy import stats # 用于绘图的库 import matplotlib.pyplot as plt import seaborn as sns sns.set() # 用于估计统计…...
Android 11以上获取不到第三方app是否安装
开年第一篇,处理了一下年前的小问题。 问题:本地app跳转到第三方app地图进行导航,获取不到第三方地图是否安装。 解决: 1.添加包名 This can be done by adding a <queries> element in the Android manifest.在app下的…...
Java的编程之旅24——private私有方法
1.private的介绍 在面向对象编程中,private是一种访问修饰符,用于限制成员的访问范围。私有成员只能在所属的类内部访问,对外部的类或对象是不可见的。 private的使用可以带来以下几个好处: 封装实现细节:私有成员可…...
为什么在MOS管开关电路设计中使用三极管容易烧坏?
MOS管作为一种常用的开关元件,具有低导通电阻、高开关速度和低功耗等优点,因此在许多电子设备中广泛应用。然而,在一些特殊情况下,我们需要在MOS管控制电路中加入三极管来实现一些特殊功能。然而,不同于MOS管ÿ…...
CSS的注释:以“ /* ”开头,以“ */ ”结尾
CSS的注释:以“ /* ”开头,以“*/”结尾 CSS的注释: 以“ /* ”开头,以“ */ ”结尾 在CSS中,注释是一种非常重要的工具,它们可以帮助开发者记录代码的功能、用法或其他重要信息。这些信息对于理解代码、维护代码以及与他人合作都…...
MySQL中常见的几种日志类型【重点】
在MySQL中,有几种不同类型的日志,用于记录数据库的活动和操作,以便于故障排查、性能调优和数据恢复等目的。以下是MySQL中常见的几种日志类型: 错误日志(Error Log): 错误日志记录了MySQL服务器…...
odoo16-API(Controller)带有验证访问的接口
odoo16-API(Controller)带有验证访问的接口 目前我使用odoo原生的登录token来验证登陆的有效性 废话不多说直接上代码 # 测试获取session_id import requests class GetOdooData(http.Controller):def getOdooToken(self):# http://localhost:8123访问…...
Eclipse项目间的引用
我们在开发的时候,有时候需要把一个大的项目打散,尤其是现在微服务的架构很流行,一个大的项目往往被拆成很多小的项目,而有的项目作为公共工程被独立出来,比如有个工程专门提供各种Util工具类,有的工程专门…...
matplotlib使用案例3:通过自定义图例类实现图例的任意方向(行 or 列)的排列
这个方法的核心依然是基于matplotlib.legend._get_legend_handles_labels函数。然后将得到的handlers, labels进行重排,使得即使再调用Legend类的绘制方法对图例进行列排列,最终的效果也是图例的行显示,如[1、2、3、4、5、6],当指定ncols=2,Legend类的绘制方法得到的图例如…...
Graphormer效果展示:OGB-LSC PCQM4M榜单提交格式与验证流程
Graphormer效果展示:OGB-LSC PCQM4M榜单提交格式与验证流程 1. 模型概述 Graphormer是一种基于纯Transformer架构的图神经网络,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计。该模型在OGB(Open Graph B…...
收藏!从Prompt到Harness,AI工程升级三步搞定大模型应用
本文阐述了AI工程从关注Prompt到Context再到Harness的演进过程。Prompt工程负责明确任务指令,Context工程负责提供准确有效的信息供给,而Harness工程则关注AI在系统中的可靠执行与治理。三者并非替代关系,而是嵌套协作,共同推动AI…...
Java记录模式安全边界警告:3类不可序列化场景、2种反编译泄露风险(Oracle安全白皮书节选)
第一章:Java记录模式安全边界警告:3类不可序列化场景、2种反编译泄露风险(Oracle安全白皮书节选)不可序列化的三类典型场景 Java记录(Record)类型在设计上强调不可变性与透明性,但其默认序列化行…...
OLAP] DuckDB : 开源免费的、面向嵌入式场景、列式存储的分析型数据库
0 序 DuckDB 是近期非常火的一款 AP 数据库,其独特的定位很有趣。甚至有数据库产品考虑将其纳入进来,作为分析能力的扩展。 考虑到项目中一个数据处理场景,就此调研一二。 DuckDB 的爆火,也给所有盲目追逐“大数据”的技术人敲响…...
别再让AI单打独斗了:用MCP协议手把手教你搭建一个能‘对话’的智能体协作系统
从零构建智能体协作系统:基于MCP协议的周末旅行规划实战 想象一下这样的场景:周五晚上,你对着手机说"帮我规划一个去杭州的周末旅行",30秒后,一份完整的行程建议出现在屏幕上——包含根据实时天气推荐的穿搭…...
【技术突破】douyin-downloader:重新定义抖音内容采集效率的智能引擎
【技术突破】douyin-downloader:重新定义抖音内容采集效率的智能引擎 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser …...
三步解决Windows 11卡顿难题:开源工具Win11Debloat让系统效率提升3倍
三步解决Windows 11卡顿难题:开源工具Win11Debloat让系统效率提升3倍 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to de…...
Android 应用间文件共享:FileProvider 配置与实战解析
1. 为什么需要FileProvider? 在Android开发中,每个应用都有自己的私有存储空间,这些目录默认是其他应用无法访问的。这种设计保证了应用数据的安全性,但同时也带来了一个问题:当我们需要与其他应用共享文件时该怎么办&…...
2026上海紧固件专业展观察:12.9级螺栓为何成为高端制造核心紧固方案?
2026第十六届上海紧固件专业展(Fastener Expo Shanghai 2026)将于6月24日至26日在上海国家会展中心举办。作为紧固件行业的重要展示窗口,本届展会将集中呈现高强度紧固件的发展趋势,其中12.9级螺栓已成为当前制造业升级的重要标志…...
构建语音搜索引擎:FireRedASR Pro与Elasticsearch整合实践
构建语音搜索引擎:FireRedASR Pro与Elasticsearch整合实践 你有没有想过,对着手机说句话,就能从海量文档里精准找到你想要的信息?比如,在公司的知识库里,直接问“上季度华东区的销售数据报告在哪ÿ…...
