go结构体初始化_golang中结构体的初始化方法

目录

1、自定义一个结构体

type Vertex struct {

X, Y float64

}

2、初始化方法-指针:

rect1 := new(Vertex )

rect2 := &Vertex {}

rect3 := &Vertex {1, 2}

rect4 := &Vertex {X:100, Y:200}

注意: 这几个变量全部为指向Rect结构的指针(指针变量),因为使用了new()函数和&操作符.

3、初始化方法-类型实例

a := Rect{}

b := Rect{3, 4}

c := Rect{X=5, Y=6}

则表示这个是一个Rect{}类型.两者是不一样的.

4、区别

下面这个例子能展现之间区别:

package main

import "fmt"

type Vertex struct {

X, Y float64

}

func main() {

rect1 := new(Vertex)

rect2 := &Vertex{1, 2}

fmt.Printf("%v  %T  %v \n",  rect1,  rect1,  *rect1)

fmt.Printf("%v  %T  %v \n",  rect2,  rect2,  *rect2)

rect3 := Vertex{X: 5, Y: 6}

fmt.Printf("%v  %T\n",  rect3,  rect3)

}

// 输出:

/*

&{0 0}  *main.Vertex  {0 0}

&{1 2}  *main.Vertex  {1 2}

{5 6}  main.Vertex

*/

从结果中可以清楚的看到两者的不同.

用 new 分配内存 内建函数 new 本质上说跟其他语言中的同名函数功能一样:new(T) 分配了零值填充的 T 类型的内存空间,并且返回其地址,一个 *T 类型的值。用 Go 的术语说,它返回了一个指针,指向新分配的类型 T 的零值。记住这点非常重要。 这意味着使用者可以用 new 创建一个数据结构的实例并且可以直接工作。

务必记得 make 仅适用于 map,slice 和 channel,并且返回的不是指针。应当用 new获得特定的指针。

标签: golang

顶一下

(0)

0%

踩一下

(0)

0%

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python脚本转换成apk_apktool反编译apk并回编译

apktool反编译apk并回编译 下载apktool工具: apktool官方网站:https://ibotpeaches.github.io/Apktool/ 安装apktool并配置apktool环境变量 安装方法:https://ibotpeaches.github.io/Apktool/install 用apktool反编译apk文件 apktool d apkna…

计算机主机机箱面板辐射,电脑机箱如何防辐射----给大家科普一下

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼对于天天坐在电脑前的玩家和用户来说,防辐射已经成为一个不可忽视的问题,如果对于孕妇和小孩来说,则更值得重视。我们知道,在显示器已经过渡到液晶时代之后,电脑辐射就主要…

分享三个非常适合新手的网站

http://www.jq22.com/(jquery插件库里面很多个性插件。个人很喜欢,以前一些插件以为都要自己写现在可以借鉴别人的了。还好看好用)、http://www.yiibai.com/和http://www.runoob.com/(资料很全的网站),http://www.w3ch…

万维网之父公布拯救网络计划:保护互联网免遭滥用,惠及人类

来源:澎湃新闻万维网之父蒂姆伯纳斯-李爵士(Sir Tim Berners-Lee)公布了一项拯救网络的全球计划,呼吁政府和企业能够阻止对互联网的滥用,保护互联网免受政治操纵、假新闻、侵犯隐私等其他威胁。这项计划名为《互联网契…

mybatis insert 重复数据2条_Mybatis框架lt;增gt;:添加一条数据到数据库中,insert...

在以上框架中,前面所搭建好的框架全部固定好,接下来,我们在此基础上实现功能使用insert添加一条数据到数据库中(1)在UserMapper接口中添加对应方法,//在数据库表中增添一条数据,返回为int类型,参数传递Usee…

python语言程序设计基础嵩天答案第二章_python语言程序设计基础(嵩天版),第二章程序练习题...

python语言程序设计基础(嵩天版),第二章程序练习题 欢迎访问江南烧酒的博客 2.2汇率兑换程序。按照1美元6人民币汇率编写一个美元和人民币的双向兑换程序。 """ 2.2汇率兑换程序,美元和人民币 """ …

边缘数据中心维护的4个基本组件

来源:外电翻译边缘数据中心设施运行与数据中心相同的通用计算硬件,其中包括存储和网络设备。企业经常将边缘数据中心部署在非传统位置,例如移动通信基站、工厂车间,甚至是在野外。边缘数据中心为现场多个设备提供管理层&#xff0…

计算机组成说明,计算机组成与系统结构考试说明.ppt

《计算机组成与系统结构考试说明.ppt》由会员分享,可在线阅读,更多相关《计算机组成与系统结构考试说明.ppt(11页珍藏版)》请在人人文库网上搜索。1、计算机组成与系统结构考试说明,考试时间大家关注教务通知,考试题型,1选择题 10个共10分 2填空 5 个 共…

ubuntun系统mysql数据库同步_Ubutun 14.10下mysql 主从同步详细操作

d)配置MySQL从服务器的my.cnf文件vi /etc/my.cnf #编辑配置文件,在[mysqld]部分添加下面内容server-id2 #配置文件中已经有一行server-id1,修改其值为2,表示为从数据库log_binmysql-bin #启动MySQ二进制日志系统,注意:…

XidianOJ 1195 Industry of Orz Pandas

--正文 贪心 排序好慢慢找就好 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; typedef long long LL;int a[20001],b[20001]; int n,m,x; int main(){while (scanf("%d %d %d",&…

js设计一个带开关的时钟_数电题:三个按键一个灯

有这样一道数电题&#xff1a;一个LED发光二极管由A、B、C三个独立按键控制&#xff0c;要求按压A、B、C三个按键中的任意一个都能对LED实现亮、灭控制(即每按压一次按键&#xff0c;LED发光状态改变一次)。请用D触发器或JK触发器实现&#xff0c;画出逻辑电路图&#xff0c;说…

从火热到理性,2019年AI芯片行业发展的怎么样了?【附PPT下载】

来源&#xff1a;艾瑞咨询AI芯片大家已经非常熟悉了&#xff0c;经过几年的发展&#xff0c;其技术噱头时代已经过去。转眼2019年即将过去&#xff0c;AI芯片究竟发展的怎么样了&#xff1f;今天就推荐艾瑞咨询的《AI芯片行业研究报告2019》&#xff0c;从五个角度展开&#xf…

char怎么比较_为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?...

在阅读《阿里巴巴Java开发手册》时&#xff0c;发现有一条关于整型包装类对象之间值比较的规约&#xff0c;具体内容如下&#xff1a;这条建议非常值得大家关注&#xff0c; 而且该问题在 Java 面试中十分常见。还需要思考以下几个问题&#xff1a;如果不看《阿里巴巴Java开发手…

一幅图读懂量子力学(上)

来源&#xff1a;量子学派参考书目&#xff1a;赵峥《探索未知的世界》彼得柯文尼《时间之箭》布赖恩格林《宇宙的琴弦》曹天元《量子物理史话》约翰格里宾《寻找薛定谔的猫》郭奕玲《物理学史》未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互…

idea2019配置gradle详解_Constraint Layout 2.0 用法详解

Constraint Layout 是最受欢迎的 Jetpack 库之一&#xff0c;它的 2.0 正式版本也发布啦 (目前最新版本 2.1.0-alpha1)&#xff01;也许您已熟悉了 Constraint Layout 1.1 版本中的功能&#xff0c;并开始用它来快速构建复杂的页面布局&#xff0c;而新版本除了包含 1.1 版本中…

函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法

1. 用法一 LOCATE(substr,str) POSITION(substr IN str) 函数返回子串substr在字符串str中第一次出现的位置。如果子串substr在str中不存在&#xff0c;返回值为0。 mysql> SELECT LOCATE(bar, foobarbar); -> 4 mysql> SELECT LOCATE(xbar, foobar); -> 0 这…

向内存中连续存入数据_内存节省到极致!Redis中这个数据结构,值得每个程序员了解...

在之前我们介绍了&#xff0c;Redis有五种基础数据类型&#xff0c;分别是String,Set,List,Hash与SortSet。今天我们又学习了一个命令&#xff0c;我们可以使用DEBUG OBJECT key查询Redis中&#xff0c;存储数据的一些关键信息&#xff0c;如下所示&#xff1a;我们发现了zipli…

人工智能的缺憾

来源&#xff1a; 人机与认知实验室按&#xff1a;对于人工智能的发展最近一直有一些思考&#xff0c;抽空整理下来&#xff0c;算是抛砖引玉吧。欢迎指教讨论。人工智能的崭新范式人工智能的研究范式和数理科学截然不同。这种范式数据导向&#xff0c;非常工程化&#xff0c;方…

cmos和ttl_TTL电平和CMOS电平的区别

1.TTL电平&#xff1a;输出高电平>2.4V,输出低电平<0.4V。在室温下&#xff0c;一般输出高电平是3.5V&#xff0c;输出低电平是0.2V。最小输入高电平和低电平&#xff1a;输入高电平>2.0V&#xff0c;输入低电平<0.8V&#xff0c;噪声容限是 0.4V。2.CMOS电平&…

python编程环境安装包_Python环境安装与配置

第二天-Python环境境安装及简单程序的编写 一.Python的安装 1.首先进入网站下载&#xff1a;点击打开链接&#xff08;或自己输入网址https://www.python.org/downloads/&#xff09;&#xff0c;进入之后如下图&#xff0c;选择适合自己操作系统的版本进行下载。2.下载完成后如…