第一个Go语言程序

news2025/4/21 3:04:25

第一个Go语言程序

目录

  • 第一个Go语言程序
  • 引言
  • Go的开发环境
    • 安装
    • GoPATH
    • 编辑器
  • 第一个Go程序
  • 总结

在这里插入图片描述

引言

本系列博客将手把手带着大家从零基础入门go语言,不定时更新吧,自己学到哪就更新到哪,先讲讲为什么要学习go语言:列出以下几点go语言的官方特性

  1. 高效的并发编程:Go语言天生支持并发编程,通过goroutine和channel等机制,可以轻松地实现高效的并发编程,这在处理大规模数据、高并发请求等场景下非常有用。
  2. 简单易学:Go语言的语法简单易懂,学习曲线平缓,相比其他语言,入门门槛较低。
  3. 快速编译:Go语言的编译速度非常快,特别适合大型项目和快速迭代,可以提高开发效率。
  4. 内存管理:Go语言使用垃圾回收机制,自动管理内存,让开发者从手动管理内存的烦恼中解脱出来,提高了开发效率和代码质量。
  5. 跨平台支持:Go语言可以编译成不同平台的二进制文件,支持Windows、MacOS、Linux等多个操作系统,可以方便地跨平台开发。
  6. 应用广泛:Go语言在很多领域都有广泛的应用,例如云计算、网络编程、区块链等领域。

总的来说,学习Go语言可以让开发者轻松地实现高效的并发编程、提高开发效率、提高代码质量、方便跨平台开发,并且在不同领域有广泛的应用,但是迄今为止使用Go语言的公司在国内知名度最高的也就是字节跳动了,因为Go语言的历史相较于其他的编程语言就好像是一个初出茅庐的少年,其他很多大型企业主流的语言还是Java或者Python开发,因此大家可以将Go当作一门兴趣爱好去学习,在平淡的生活中发现一些不一样的乐趣。

Go的开发环境

安装

官方网址:https://go.dev/dl/

在官方网址上“傻瓜式”下载安装Go语言的开发环境,第一次打开可能会有些慢,多尝试几次就好了,人生嘛不可能是一帆风顺的。打开以后选择自己的操作系统,安装对应的安装包,之后就是双击安装了。要注意的是一定要记住你自己下载Go环境的文件夹位置,后面配置环境变量要用到的。

在这里插入图片描述

在这里插入图片描述

GoPATH

GOPATH是一个环境变量,用来表明你写的go项目的存放路径

GOPATH路径最好只设置一个,所有的项目代码都放到GOPATHsrc目录下。

windows搜索环境变量给你的GoPATH设置一个文件夹

在这里插入图片描述

同时在系统的环境变量path里面添加go的安装目录和GOPATH目录

配过环境变量的话就不需要我多介绍了,讲一下go的开发习惯,在你的GOPATH下创建三个文件夹

bin:用来存放编译后生成的可执行文件

pkg:用来存放编译后生成的归档文件

src:用来存放源码文件
在这里插入图片描述

编辑器

我只有vscode所以就选择用它来进行开发作示例讲解。

官方网址:https://code.visualstudio.com/

  1. 选择windows版本下载,vscode有新版本时候会自动更新,重启即可更新。

  2. 傻瓜式安装一直下一步就好了。

  3. 安装go插件

    启动vscode选择插件->搜go选择Go for Visual Studio Code插件点击安装即可。如图:

在这里插入图片描述

  1. 安装Go语言开发工具包

    在Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。

    Windows平台按下Ctrl+Shift+P

在这里插入图片描述

我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令全选上安装16个工具

在这里插入图片描述

注意:国内的环境可能会安装失败,这个时候需要大家借助一些魔法,不能明说!

第一个Go程序

  • src目录下创建一个hello目录,在hello目录中创建一个main.go文件:

    package main  // 声明 main 包,表明当前是一个可执行程序
    
    import "fmt"  // 导入内置 fmt 
    
    func main(){  // main函数,是程序执行的入口
        fmt.Println("Hello World!")  // 在终端打印 Hello World!
    }
    

    在这里插入图片描述

  • 在hello命令下执行go build main.go

    go编译器会去 GOPATHsrc目录下查找你要编译的hello项目

    编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件

  • 在终端直接执行该hello.exe文件:如图

    在这里插入图片描述

总结

在学习过程中,可以注意以下几点:

  1. 多写代码:学习编程语言最重要的是多写代码,通过实践来巩固所学的知识。
  2. 阅读官方文档:Go语言的官方文档非常全面,可以通过阅读官方文档来深入了解Go语言的特性和用法。
  3. 参考他人代码:可以通过阅读其他人的代码来学习Go语言的最佳实践和编码规范。
  4. 提问和交流:在学习过程中遇到问题可以通过搜索引擎或者在社区中提问,多和其他人交流可以加速学习进程。

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

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

相关文章

<TensorRT> 下载及部署

TensorRT-下载及部署 1、下载前相关查询 查看显卡驱动版本:nvidia-smi 查看cuda版本:nvcc -V cuda与显卡驱动对应表:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#title-new-features TensorRT兼容性查询&#…

详解静态、动态代理以及应用场景

一篇不太一样的代理模式详解,仔细阅读,你一定会获取不一样的代理见解,而不是人云亦云。 查看了社区里关于代理模式描述,发现很多博客千篇一律甚至存在共性错误,写此文提出自己对代理的见解。 静态代理动态代理 JDKCGLi…

ChitGPT回答tp6写答题系统

答题系统是一个涉及多个模块的复杂系统,需要涉及到前端展示、后台管理、题库管理、试卷生成、考试管理等方面。下面我将简单介绍用thinkphp6框架如何实现一个基本的答题系统。 首先,我们需要创建数据库并设计数据表,包括用户表、题目表、试卷…

每日学术速递5.7

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Multimodal Procedural Planning via Dual Text-Image Prompting 标题:通过双文本图像提示进行多模态程序规划 作者:Yujie Lu, Pan Lu, Zhiyu Chen, Wanron…

微信小程序文件上传、下载和图片处理、文件操作API的使用

这次按照我的理解来做这部分的笔记 首先,复习上节课所学的内容。就是网络请求api的使用 现在我有一个需求就是点击按钮实现获取后端返回的图片 先打开服务器 看一下我们要返回的图片路径 书写结构 看一下返回来的数据。是在data下的banners里。因此我们封装一下 这…

【利用AI刷面试题】50道前端基础面试题

文章目录 以下是一些可能出现在前端基础面试中的问题:1. 如何判断当前浏览器是否支持某个 HTML5 特性?2. Box-sizing 属性有哪些取值,分别代表什么意思?3. 什么是浏览器的同源策略?4. 什么是 CORS?如何使用…

rabbitmq+mqtt+docker-compose搭建MQTT服务器和.netcore 客户端实现 订阅+发布

1 搭建MQTT服务器 1.1 Dockerfile 内容 FROM rabbitmq:3.11.6-management COPY install_rabbitmq_plus.sh /usr/local/ RUN chmod 777 /usr/local/install_rabbitmq_plus.sh RUN /bin/sh /usr/local/install_rabbitmq_plus.sh 1.2 容器中需要安装插件的命令 放在 insta…

假如ChatGPT 去面试前端工程师,结果会怎么样?

近日,有个叫 ChatGPT 的同学来我司面试前端,考考他面试八股文。先来问问闭包。 第一问,说说 JS 闭包 追问,详细讲讲闭包 由于篇幅太长,转成文字,以下皆为 ChatGPT 回答 闭包是一个非常重要的 JavaScript 概…

Maven构建Java项目Maven构建项目测试Maven引入外部依赖Maven项目模板

目录 Maven 构建 Java 项目 解释一下这段代码,为什么可以构建一个目录清晰的maven项目“mvn archetype:generate "-DgroupIdcom.companyname.bank" "-DartifactIdconsumerBanking" "-DarchetypeArtifactIdmaven-archetype-quickstart&qu…

volatile的实现简单概述

文章目录 内存屏障volatile关键字的实现synchronized关键字的实现 内存屏障 在讲解是关键字之前,先来了解下内存屏障的概念。 处理器保障禁止内存重排序的指令被称为基本内存屏障。其作用是禁止该屏障前后之间的操作进行重排序,要确保指令前的操作要先…

华为OD机试真题 Java 实现【服务中心选址】【2023Q1 100分 】

一、题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址,使服务中心到所有区域的距离的总和最小。 给你一个数组 positions,其中 positions[i] [le…

域名批量查询是否注册-老域名批量查询

域名到期时间批量查询软件 您是否也曾遇到过域名到期或续费时间即将到来,而需要手动一个一个查询每个域名的情况,这不仅费时效率低,还可能会遗漏一些域名。那么,我们为您介绍一款可以帮助您快速、便捷查询多个域名到期时间的软件—…

分享去年学习github命令行操作的笔记

git branch -M main 给远程分支改名 一、本地库操作 1.创建本地目录&#xff0c;用于存储要上传的文本文件。可以手动创建也可以用带命令行 mkdir <文件名> 2.进入文件夹cd <文件名> 3第一次创建时需要初始化仓库git init mac显示隐藏文件SHIFTCOMMAND. mac…

Vue3-黑马(六)

目录&#xff1a; &#xff08;1&#xff09;vue3-基础-vueuse &#xff08;2&#xff09;vue3-基础-useRequest &#xff08;3&#xff09;vue3-基础-usePagination &#xff08;1&#xff09;vue3-基础-vueuse 我们在实际中use函数的封装&#xff0c;不用我们自己写&#…

精准室内定位系统源码,采用UWB定位技术开发的智慧工厂定位系统源码

室内定位系统源码&#xff0c;采用UWB定位技术开发的智慧工厂定位系统源码 技术架构&#xff1a;单体服务 硬件&#xff08;UWB定位基站、卡牌&#xff09; 开发语言&#xff1a;java 开发工具&#xff1a;idea 、VS Code 前端框架&#xff1a;vue 后端框架&#xff1a;s…

Linux基础学习---5、磁盘查看和分区类、进程管理类

1、磁盘查看和分区类 1.1 du查看文件和目录占用的磁盘空间 du:disk usage 磁盘占用情况 1、基本语法du 目录/文件 &#xff08;显示目录下每个子目录的磁盘使用情况&#xff09; 2、情况说明选项功能-h以人们较易阅读的GBytes、MBytes、KBytes等格式自行显示-a不仅查看子目录…

iproute2 和 net-tools 介绍

路由&#xff08;Routing&#xff09; 在网络通信中&#xff0c;“路由”是一个网络层的术语。路由是指设备从一个接口上收到数据包&#xff0c;根据数据包的目的地址进行定向并转发到另一个接口的过程。路由表则是若干条路由信息的一个集合体。在路由表中&#xff0c;一条路由…

用Python+OpenCV+Yolov5+PyTorch+PyQt开发的车牌识别软件(包含训练数据)

目录 演示视频 软件使用说明 软件设计思路 演示视频 这是一个可以实时识别车牌的软件&#xff0c;支持图片和视频识别&#xff0c;以下是软件的演示视频。 车牌识别软件 点击查看代码购买地址 软件使用说明 1. 下载源码后&#xff0c;首先安装依赖库。项目所用到的依赖库已…

卷起来了!阿里最新出品“微服务全阶笔记”,涵盖微服务全部操作

近两年&#xff0c;“大厂裁员”总是凭实力冲上各大媒体头条&#xff0c;身在局中的我们早已习以为常。国内的京东&#xff0c;阿里&#xff0c;腾讯&#xff0c;字节&#xff0c;快手&#xff0c;小米等互联网公司都以不同程度的裁员比例向社会输送人才。大量有大厂经验的卷王…

一起打造漂亮的Ubuntu——2023最新版Gnome44

一起打造漂亮的Ubuntu 对于一个工程师&#xff0c;开发者&#xff0c;研究员来说&#xff0c;拥有一台漂亮的机器外加漂亮的系统界面是非常重要的。 作为Ubuntu十年的忠实粉丝&#xff0c;Linux高度依赖用户&#xff0c;无论是工作还是生活&#xff0c;我都一直以来使用着Ubu…