Go语言入门:从零开始的快速指南

news2024/9/24 17:16:04

文章目录

  • 引言
  • Go语言的诞生背景
  • Go 语言的特性
  • 安装Go语言环境
  • 集成开发环境安装
  • 第一个Go程序
  • Go 源代码的特征解读

引言

Go语言(也称为Golang)是一种开源的、静态类型的编程语言,由Google开发。它的设计目标是简单、高效、安全、并且易于学习和使用。Go语言的特点包括并发支持、垃圾回收、快速编译、强大的标准库等,使其在云计算、网络服务、大数据处理等领域广受欢迎。本篇博客将带您从零开始,快速创建Go语言的第一个项目。

Go语言的诞生背景

Go 语言的诞生主要基于如下原因 :

  1. 摩尔定律接近失效后多核服务器己经成为主流,当前的编程语言对并发的支持不是很
    好,不能很好地发挥多核CPU的威力 。
  2. 程序规模越来越大,编译速度越来越慢,如何快速地编译程序是程序员的迫切需求。
  3. 现有的编程语言设计越来越复杂,由于历史的包袱,某些特性的实现不怎么优雅,程
    序员花费了更多的精力来应对编程语法细节而不是问题域。

Go 语言就是为了解决当下编程语言对并发支持不友好、编译速度慢、编程复杂这三个 问题而诞生的 。

Go 语言的特性

在这里插入图片描述

安装Go语言环境

首先,您需要在本地计算机上安装Go语言环境。前往Go官方网站下载适合您操作系统的安装包,按照提示完成安装。
在这里插入图片描述

  • 下载完成,双击,一路next,记住安装路径
  • 安装完成打开命令行,输入命令 “go”(会自动把环境变量给配好)
    在这里插入图片描述

集成开发环境安装

推荐GoLand,安装方法和Java的IDEA一样的,可以使用EAP版本或者教育认证下载。

  • 新建项目
    在这里插入图片描述
  • 添加前面安装好的Go环境,找到前面记住的路径
    在这里插入图片描述
  • 选择项目位置
    在这里插入图片描述
  • 配置项目位置的GOPATH(把默认的改一下就好了)
    在这里插入图片描述

第一个Go程序

  • 起始界面(2023版本我用不惯那个新UI,所有我切回旧UI了)
    在这里插入图片描述
  • 创建源代码文件
    在这里插入图片描述
  • 输入源代码
package main

import (
	"fmt"
)

func main() {
	fmt.Println("hello world")
}

如果识别不了关键字就打开提示,选择之前记住的GO环境
在这里插入图片描述

  • package main
    定义一个包,包名为 main , main 是可执行程序的包名,所有的 Go 源程序文件头部必须有一个包声明语句, Go 通过包来管理命名空间 。
  • import “fmt”
    import 引用 一个外部包 fmt , 可以是标准库的包,也可以是第三方或自定义的包,
    fmt 是标准输入/输出包。
  • func main() {}
    func关键字声明定义一个函数,函数名为main, main代表 Go 程序入口函数。
  • fmt.Println(“hello world”)
    调用 fmt 包里面的 Printfln 函数,函数实参是一个字符串字面量 , 在标准输出里面
    打印一句话“ hello world”。

Go 源代码的特征解读

  • 源程序以 .go 为后缀。
  • 源程序默认为 UTF-8 编码。
  • 标识符区分大小写 。
  • 语句结尾的分号可以省略。
  • 函数 func开头 , 函数体开头的“{”必须在函数头所在行尾部,不能单独起一行。
  • 宇符串字面量使用“ " " ”(双引号)括起来。
  • 调用包里面的方法通过点“ . ”访问符,比如示例中的 fmt.Printfln。
  • main 函数所在的包名 必须是 main 。

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

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

相关文章

使用docker 搭建nginx + tomcat 集群

创建3个Tomcat容器,端口分别映射到 8080,8081,8082,使用数据卷挂载,分别将宿主机目录下的 /opt/module/docker/tomcat3/ROOT1/,/opt/module/docker/tomcat3/ROOT2/,/opt/module/docker/tomcat3/ROOT2/ 挂载到 容器内部…

安防监控视频汇聚EasyCVR电子地图定位偏移是什么原因?

安防监控EasyCVR视频汇聚综合管理平台具有强大的数据接入、处理及分发能力,平台可提供视频监控直播、云端录像、云存储、录像检索与回看、告警上报与查询、平台级联、云台控制、语音对讲、电子地图、轨迹跟踪、H.265自动转码等视频能力。 在视频监控管理平台TSINGSE…

什么样的跨网文件安全交换系统 可实现安全便捷的文件摆渡?

进入互联网时代,网络的运算和数据管理能力助力各个行业高速发展,但同样带来了一些网络安全隐患,网络攻击、数据窃取、敏感信息泄露等问题。为此,我国出台了系列政策来全面提升银各行业系统网络安全整体防护水平,其中“…

微信小程序中的全局数据共享(状态管理)使用介绍

开发工具:微信开发者工具Stable 1.06 一、状态管理简介 微信小程序全局状态是指可以在不同页面之间共享的数据或状态。 它可以存储用户的登录状态、个人信息、全局配置信息等。 二、安装MobX 1、安装NPM 在资源管理器的空白地方点右键,选择“在外部…

在Volo.Abp微服务中使用SignalR

假设需要通过SignalR发送消息通知,并在前端接收消息通知的功能 创建SignalR服务 在项目中引用 abp add-package Volo.Abp.AspNetCore.SignalR在Module文件中添加对模块依赖 [DependsOn(...typeof(AbpAspNetCoreSignalRModule))] public class IdentityApplicati…

JavaEE 面试常见问题

一、常见的 ORM 框架有哪些? 1.Mybatis Mybatis 是一种典型的半自动的 ORM 框架,所谓的半自动,是因为还需要手动的写 SQL 语句,再由框架根据 SQL 及 传入数据来组装为要执行的 SQL 。其优点为: 1. 因为由程序员…

便捷省心的手机直播影视工具,畅享轻松电视娱乐时光

便捷省心的手机直播影视工具,畅享轻松电视娱乐时光 在快节奏的现代生活中,我们常常渴望能够以简单、省心的方式消遣自己,享受高品质的电视娱乐。幸运的是,随着技术的进步,便捷省心的手机直播影视工具应运而生。这些工…

原来设计师都在6个网站找素材~

设计师都在用的这些设计素材网站你知道吗?免费、商用真的很香,一定要收藏~ 菜鸟图库 https://www.sucai999.com/?vNTYxMjky 菜鸟图库是一个非常大的素材库,站内包含设计、办公、自媒体、图片、电商等各行业素材。网站主要为新手设计师提供…

网站无法访问的常见原因

有多种问题可能会阻止用户访问您的网站。本文将解决无法访问网站,且没有错误消息指示确切问题的情况,希望对您有所帮助。 无法访问网站的常见原因有: (1)DNS 设置不正确。 (2)域名已过期。 (3)空白或没有索引文件。 (4)网络连接问题。 DNS 设…

bash的特性(二)IO重定向与管道

bash的I/O重定向及管道 一、概述 在shell中,最常使用的fd(file descriptor)有三个,标准输入,标准输出,错误输出。进程用文件描述符来管理打开的文件。 名称 文件描述符 标准输入(stdin) 0 键盘,也可以…

分布式应用:ELFK集群部署

目录 一、理论 1.ELFK集群 2.filebeat 3.部署ELK集群 二、实验 1. ELFK集群部署 三、总结 一、理论 1.ELFK集群 (1)概念 ELFK集群部署(FilebeatELK),ELFK ES logstashfilebeatkibana 。 数据流 架构 2.fi…

LangChain+ChatGLM整合LLaMa模型(二)

开源大模型语言LLaMa LLaMa模型GitHub地址添加LLaMa模型配置启用LLaMa模型 LangChainChatGLM大模型应用落地实践(一) LLaMa模型GitHub地址 git lfs clone https://huggingface.co/huggyllama/llama-7b添加LLaMa模型配置 在Langchain-ChatGLM/configs/m…

第三方软件测评机构如何搭建测试环境?测试报告收费标准

**  在软件产品周期中,软件测试环境是一个非常重要的组成部分它提供了一个模拟真实生产环境的虚拟环境,用于测试和验证软件的功能和性能。一个好的软件测试环境可以帮助开发团队更好地发现和解决问题,提高软件的质量和可靠性。 一、第三方…

EDM邮件打开率标准,如何提高EDM营销打开率?

EDM邮件打开率和转化率平均水平是多少?如何做高转化率的EDM邮件营销? 随着许多企业参与EDM营销,如何提高EDM邮件打开率成为一个关键问题。本文将介绍EDM邮件打开率标准,并提供一些建议,帮助您提升EDM营销打开率,吸引更多潜在客…

便捷就医新选择,深度解析诊所小程序的功能要求

随着移动互联网的快速发展,越来越多的诊所选择开发诊所小程序来提供便捷的医疗服务。诊所小程序是一种基于微信平台的轻量级应用程序,为用户提供在线挂号、诊疗记录查看、医生咨询等功能。本文将介绍诊所小程序的功能要求,以帮助诊所更好地了…

银河麒麟V10 QtCreator安装配置说明(断网离线)

文章目录 1.安装要求:2.安装Qt1.安装要求: 拥有Qt软件安装包qt5.12-arm链接:https://pan.baidu.com/s/1FJerT6SckfjABxAn60rsrA?pwd=mfi6 提取码:mfi6 2.安装Qt 1)拷贝Qt软件包qt5.12-arm至系统/home/kylin/桌面 2)安装Qt软件包 cd /home/kylin/qt5.12-arm/桌面 su…

CLion和VS中avcodec_receive_frame()获取结果不同

1. 介绍 在提取音视频文件中音频的PCM数据时,使用avcodec_receive_frame()函数进行解码时,遇到了一些问题,代码在Visual Studio 2022中运行结果符合预期,但是在CLion中运行时,获取的AVFrame有错误,和VS中获…

HTTP——六、HTTP首部

HTTP首部 一、HTTP报文首部HTTP 请求报文HTTP 响应报文 二、HTTP 首部字段1、HTTP 首部字段传递重要信息2、HTTP 首部字段结构3、4 种 HTTP 首部字段类型4、HTTP/1.1 首部字段一览5、非 HTTP/1.1 首部字段6、End-to-end 首部和 Hop-by-hop 首部 三、HTTP/1.1 通用首部字段1、Ca…

HCIP的mgre小实验

实验要求&#xff1a; 第一步&#xff1a;拓扑的搭建 第二步&#xff1a;路由、IP的配置&#xff1a; r1: <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sys r1 [r1]int g 0/0/0 [r1-GigabitEthernet0/0/0]ip add 192.168.1.2 24 [r1-Gigabi…

TCP三次握手,四次挥手理解

1. 三次握手 *三次握手&#xff08;Three-way Handshake&#xff09;*其实就是指建立一个TCP连接时&#xff0c;需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实…