当前位置: 首页 > news >正文

一、Go开发环境搭建

文章目录

  • 1、开发工具
  • 2、开发环境配置
  • 3、Hello World
  • 4、语法

1、开发工具

https://code.visualstudio.com/download

在这里插入图片描述
在这里插入图片描述

2、开发环境配置

类比Java的JDK,go的SDK下载:https://studygolang.com/dl

在这里插入图片描述

解压:

在这里插入图片描述
在这里插入图片描述

配置环境变量path,将命令"注册"到计算机中,以便在任意路径下执行某个命令

在这里插入图片描述

3、Hello World

在这里插入图片描述
编译test.go源文件:

go build test.go//也可指定编译后文件的名称
go build -o hello.exe test.go

编译后得到一个二进制可执行文件:

在这里插入图片描述

执行:

在这里插入图片描述

也可直接编译运行一起:

go run 源码文件

在这里插入图片描述

在这里插入图片描述

以上两种方式的区别:

  • go build编译得到的是可执行文件,包含了程序运行的库文件,因此test.exe大小明显大于源文件。但同时,这个编译后的exe文件在没有go环境的机器上也可以运行

在这里插入图片描述

  • go run则是需要一个go的开发环境

最后,如果go run或者go build很慢,可设置go的GOPROXY这个env

在这里插入图片描述
或者使用指令设置:

go env -w  GOPROXY=https://xxxx

4、语法

  • 源文件以.go结尾
  • 程序支持入口是main函数
  • 严格区分大小写
  • 一条条语句后不用加封号(加了也不报错)
  • Go编译器是一条条进行编译的,因此一行写一条语句(多条在同一行就必须加封号)
  • 定义的变量或者import的包如果没使用到,编译会不通过
//编译报错
//导的包没用到
imported and not used
//定义的变量没用到
declared but not used
  • 单行注释//,多行注释/* */
  • 调整代码缩进格式
//-w即写入源文件,不加只在控制台做个展示
gofmt -w test.go
  • 函数定义的花括号放这儿编译不通过

在这里插入图片描述

  • Go函数库文档:https://studygolang.com/pkgdoc
http://www.lryc.cn/news/327537.html

相关文章:

  • 包子凑数(蓝桥杯,闫氏DP分析法)
  • Java八股文(JVM)
  • 云硬盘扩容后将空间增加到原有分区的解决方案
  • Tensorflow2.0笔记 - metrics做损失和准确度信息度量
  • LeetCode 面试经典150题 290.单词规律
  • 【CASS精品教程】CASS中计算四参数和七参数(以RTK数据为例)
  • 什么是RISC-V?开源 ISA 如何重塑未来的处理器设计
  • 展馆设计中展示有哪些要求
  • python实战之PyQt5桌面软件
  • Switch 和 PS1 模拟器:3000+ 游戏随心玩 | 开源日报 No.174
  • 免费翻译pdf格式论文
  • 3D产品可视化SaaS
  • 浙大版《C语言程序设计(第4版)》题目集-习题3-5 三角形判断
  • Java封装、继承、多态和抽象深度解析
  • 深度学习每周学习总结P3(天气识别)
  • 通过iOS网络抓包工具实现移动应用数据安全监控
  • Stable Diffusion WebUI 生成参数:脚本(Script)——提示词矩阵、从文本框或文件载入提示词、X/Y/Z图表
  • synchronized和volatile的原理及应用
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之九 简单闪烁效果
  • 11 开源鸿蒙OpenHarmony轻量系统源码分析
  • 专题:一个自制代码生成器(嵌入式脚本语言)之应用实例
  • Appium设备交互API
  • Qlib-Server部署
  • CMC学习系列 (4):β段CMC可以作为一种中风治疗的生物标志物和治疗靶点
  • jmeter中参数加密
  • YOLOv8改进 | 检测头篇 | 2024最新HyCTAS模型提出SAttention(自研轻量化检测头 -> 适用分割、Pose、目标检测)
  • verilog设计-cdc:多比特信号跨时钟域(DMUX)
  • 服务器停止解析域名,但仍然可以访问到
  • Centos系统与Ubuntu系统防火墙区别,以及firewalld、ufw和iptables三者之前的区别。
  • ES6 学习(三)-- es特性