go入门知识

news2024/12/23 6:23:17

step1:去https://go.dev下载golang

step2:下载jetbrains的Goland编译器(安装的过程会自动帮你配置好环境变量)


 

 

一个最简单的go程序

package main


import
(
   "fmt"
)


func  main()
{
     fmt.Printf("Hello World")

}

1.定义变量:   var    变量名   变量的数据类型

var  a  int

var  b  int=3

自动初始化:整型和浮点型变量的默认值为0,字符串变量的默认值为空字符串,布尔型变量默认为bool,切片、函数、指针变量的默认为nil

不指定变量类型的话,编译器会尝试根据等号右边的表达式推导出变量a的类型

var a = 100

批量定义变量:

var(
   a  int
   b  string
   c  []float
   d  func() bool
   e  struct
   {
      x  int
   }
)

实际常用的定义变量的方式:

test:="Hello World"
a:=1

变量值交换

var  a  int =100;
var  b  int =200;
b,a=a,b

基本类型:整型,浮点型,布尔型,字符串,数组

高级类型:切片,结构体,函数,map,通道


2.数组:(很少用数组,更多是用切片,因为数组的长度是固定的)

var  a [3]int
a[0]=1
a[1]=2
a[2]=3


b:=[3]{1,2,3}


var  c[2][3]
for i:=0;i<2;i++
{
   for  j:=0;j<3;j++
   {
      c[i][j]=i+j     
   }
}
var name [3]string
name[0]="xiaohong"
name[1]="xioazhang"
name[2]="xiaoming"


var  name=[3]string{"xiaohong","xiaozhang","xiaoming"}

3. 切片:不同于python,go切片不支持负数索引

s:=make([]string 3)
s[0]="a"
s[1]="b"
s[2]="c"

s=append(s,"d");//向切片追加一个字符串,现在切片为[a,b,c,d]
s=append(s,"e","f");//向切片继续追加两个字符串,现在切片为[a,b,c,d,e,f]


fmt.Println(s[2:5])//[c,d,e] 所以是左闭右开[2,5)
fmt.Println(s[:5])//[a b c d e]
fmt.Println(s[2:])//[c d e f]



也可以在创建切片的时候对切片进行初始化
test:=[]String{"g","o","o',"d"}
fmt.Println(test)



最后介绍一下复制切片
c:=make([]string,len(s))
copy(c,s)

4.map,在其他语言中就是哈希表,最频繁的数据结构

m:=make(map[string]int)

m["one"]=1
m["two"]=2
fmt.Println(m)  //map[one:1   two:2]
fmt.Println(m["one"])   //1
fmt.Println(m["unknow"])      //0

5.指针

func add1(n int)
{
  n+=2
}


func  add2(n  *int)
{
  *n+=2
}

func main()
{
    n:=5
    add1(n)  
    
    fmt.Println(n)  //n还是5

    add2(&n)

    fmt.Println(n)   //n变成7
}

6.结构体

type user  struct
{
   name  string
   password   string 
}


func  main()
{
  a:=user{name:"wang",password:"1024"}//创建并且初始化结构体

  b:=user{"wang",1024}//另一种创建结构体的方法

  //还可以这么创建
  var  c  user
  c.name="wang"
  c.password="1024"

  fm.Println(a,b,c)      //{wang  1024}  {wang  1024}  {wang  1024}
}

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

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

相关文章

蓝桥杯C51(试题内容学习)

因为C51只有一组数码管&#xff0c;但是我们需要显示的东西有很多&#xff0c;所以通过按键切换是我们必须要知道的 按键之间有嵌套&#xff0c;切换&#xff0c;计数&#xff0c;对于按键的使用我们是必须知道的 1. HC573锁存器的选择 我们在之前的基础上对其进行了优化&…

java+springboot笔记2023005--java基础

Java语言是纯粹的面向对象的程序设计语言&#xff0c;主要表现为Java完全支持面向对象的三种基本特征&#xff1a;继承、封装和多态。Java语言完全以对象为中心&#xff0c;Java程序的最小程序单位是类&#xff0c;整个Java程序由一个一个的类组成。 封装指的是将对象的 实现细…

【链表】无头单向非循环链表

本节知识所需代码已同步到gitee --》单链表关注作者&#xff0c;持续阅读作者的文章&#xff0c;学习更多知识&#xff01; https://blog.csdn.net/weixin_53306029?spm1001.2014.3001.5343 单链表顺序表的问题及思考链表链表的概念及结构链表的分类无头单向非循环链表初始化链…

windows默认文件(桌面、下载、文档等)设置为C盘根路径后怎么修改回去

桌面、下载、文档等设置为C盘根路径后怎么修改回去1.问题2.解决办法2.1.按Win R调出运行窗口&#xff0c;输入regedit并按回车。2.2.在弹出的注册表窗口里&#xff0c;打开下面路径计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell F…

1.15 SPI数码管实验

一.SPI总线 SPI是全双工三/四总线制串行总线&#xff0c;支持多主机多从机模式&#xff0c;常用单主机多从机模式 数据传输可以先传输高位也可以先传输低位。 四线&#xff08;单主机多从机&#xff09;&#xff1a; MOSI&#xff1a;主机输出&#xff0c;从机输入 …

9. 垃圾收集器与内存分配策略

整体思路 先考虑3个问题 哪些内存需要收集 堆和方法区需要收集&#xff1b;程序计数器、虚拟机栈、本地方法栈都不需要做垃圾回收&#xff08;按照其功能很容易理解&#xff09; 什么时候收集 对象已死。引申出另一个问题&#xff0c;怎么判断对象已死呢&#xff1f;当程序内…

外部链接<a>

创建外部链接 HTML 通过使用 标签在 HTML 中创建链接。 注意&#xff1a;移除 target“_blank” 属性避免点击链接会打开新的元素页。 使用a元素实现页面内跳转 a元素也可以用在网页内不同区域的跳转。 设置a元素的 href 属性值为井号#加上想跳转区域对应的id属性值&…

ASP.NET Core 3.1系列(28)——ASP.NET Core中使用Autofac替换内置IoC容器

1、前言 前面的博客主要介绍了一些Autofac的使用方法&#xff0c;示例代码都是基于控制台程序。本文就来介绍一下如何在ASP.NET Core中使用Autofac代替内置的IoC容器。 2、创建接口和类 这里搭建了一个简易的项目&#xff0c;如下图所示&#xff1a; Service层代码如下&…

长安汽车推动新伙伴变革重塑供应链模式发布长安智电iDD技术

1月12日&#xff0c;以“携手勇进一路有你”为主题的2023长安汽车全球伙伴大会在重庆大剧院举行。此次大会&#xff0c;是长安汽车总结过往生产经营良好态势&#xff0c;研判行业未来发展趋势&#xff0c;发布最新企业发展战略&#xff0c;与全球合作伙伴共谋新未来&#xff0c…

【JavaEE】网络编程基础之Socket套接字

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【JavaEE】 ✈️✈️本篇内容:网络编程基础之Socket套接字。 &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;JavaEE初阶代码存放&#xff01; ⛵⛵作者…

机器学习:公式推导与代码实现-概率模型

最大信息熵模型 根据最大信息熵原理,信息熵最大时得到的模型是最优模型,即最大信息熵模型。 最大信息熵原理 信息论的开创者香农将信息的不确定程度称为熵,为了与热力学中熵的概念区分,这种信息的不确定程度又称信息熵。 最大信息熵原理认为在所有可能的概率模型中,熵…

【Python从入门到进阶】4、pycharm的安装及使用

接上篇《3、运行python代码》 上一篇我们学习了如何使用终端和执行文件运行python代码&#xff0c;本篇我们来学习python编程工具pycharm的安装及基本使用。 一、IDE的概念 上一篇我们介绍了使用命令行指令执行和文件编译的方法进行python代码的解释执行&#xff0c;但是仍然…

总之2022,我的研发、直播、软文触达13W+人的成果打包拿走,展望2023一起加油

导读 | 2022年勇哥算是正是进入写作圈&#xff0c;在小伙伴们的支持下&#xff0c;勇哥也是每日每夜的肝&#xff0c;真心和小伙伴们分享技术前沿路上的系列故事&#xff0c;大家相互鼓励与支持&#xff0c;勇哥也是收获满满&#xff01;现在勇哥通过这边文章整理一下本年度&am…

重装系统win11服务器未响应怎么修复操作

最近网友问小编win11服务器未响应怎么修复?最近有用户询问这个问题&#xff0c;在使用电脑的时候遇到了服务器无响应的情况&#xff0c;今天小编来教大家win11服务器未响应怎么修复操作&#xff0c;希望能帮到各位。 工具/原料&#xff1a; 系统版本&#xff1a;Windows11 品…

Koa 真解

1. 前言 昨天花费了比较多的时间将Koa的源码阅读了一遍&#xff0c;主要是项目中用到了Koa&#xff0c;为了做的更加得心应手所以先将源码看一下&#xff0c;总体上源码还是非常简单的&#xff0c;没啥难度。一方面为了总结另一方面也是为了不太看懂源码的同学们&#xff0c;今…

代码审计-7 ThinkPHP框架代码审计

ThinkPHP框架目录 applocation&#xff1a;此目录为应用目录&#xff0c;网站主要的文件控制器都放在applocation目录下 view&#xff1a;此目录在applocation下&#xff0c;为视图层 extend&#xff1a;为扩展类库目录 public&#xff1a;为网站对外访问目录&#xff0c;也就…

汽车路径尽头放一个点图像验证

文章目录前言一.图片二.大致思路2.1 小车位置识别2.2 采用轮廓算法得到路径的坐标2.3 采用断点续连的方法&#xff0c;将轮廓算法得到点组成直线&#xff0c;并寻找到最后的坐标三 缺陷四.如果大佬有其他的好的方法欢迎大佬们留言交流前言 提示&#xff1a;文章写完后&#xf…

坑多路难走,学数据分析转行前要知道培训机构不会说的事情

想要转行做数据分析师&#xff1f;那就要做好迎接坑多路难走的准备。虽然培训机构可以教你如何使用工具和算法&#xff0c;但它们很少会告诉你真正的行业现状。在这个竞争激烈的领域中&#xff0c;需要知道的不仅仅是如何处理数据&#xff0c;还有如何在企业中应用它。 跟着我…

CMMI之配置管理

配置管理&#xff08;Configuration Management, CM&#xff09;的目的是通过执行版本控制、变更控制等规程&#xff0c;以及使用配置管理软件&#xff0c;来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。配置管理过程域是SPP模型的重要组成部分。本…

42. 【农产品溯源项目前后端Demo】后端-区块链连接服务

本节介绍后端代码是如何与区块链网络连接的。 1.在后端代码里fabric包 负责与区块链网络连接,并发送交易。 2.fabric.Const文件 定义 区块链网络拓扑结构,请查看注释。 public final class Const {//区块链网络中organizations的配置目录,从配置文件读取证书目录public stat…