【Golang】Go语言教程

news2024/11/24 3:16:18

Go语言教程

文章目录

  • Go语言教程
    • 一、Go语言教程
    • 二、Go语言特色
    • 三、Go语言用途
    • 四、第一个Go程序
    • 六、运行代码的两种方式
    • 七、go run和go buil的区别
      • 7.1、go run
      • 7.2、Go build

一、Go语言教程

  • Go全称Golang

  • Go是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

  • Go是从2007年未由Robert Griesemer,Rob Pike,Ken Thompson(三个人的名字)主持开发,后来还加入了lan Lance Taylor,Russ Cox等人,并最终与2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经完成开放的,并且拥有一个活跃的社区。
    在这里插入图片描述

二、Go语言特色

  • 简洁、快速、安全

  • 并行、有趣、开源

  • 内存管理、数组安全、编译迅速

三、Go语言用途

  • Go语言被涉及成一门一个用于搭载Web服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
  • 对于高性能分布式系统领域而言,Go语言无疑比大多数其他语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

四、第一个Go程序

  • 接下来我们来编写一个Go程序hello.go(Go语言源文件的扩展是.go),代码如下:
package main   // 程序的入口

import "fmt"   // 导入fmt包,它提供了I/O格式化功能,包括打印到控制台的格式化功能

func main() {   // 这定义了main函数,它是程序的入口。Go运行时将从该函数开始执行程序
	fmt.Println("Hello,World!")  // 打印Hello,World!
}

六、运行代码的两种方式

  • 要执行Go语言代码可以使用go run命令执行进行运行
D:\VS\Go\src\gocode\project01\main>go run test.go
Hello,World!
  • 此外我们还可以使用go build命令来生成二进制文件进行运行
D:\VS\Go\src\gocode\project01\main>go build test.go


D:\VS\Go\src\gocode\project01\main>test.exe  # 使用build后的二进制文件进行运行,
Hello,World!


# 也可以在build的时候进行更改程序的名称
# 会根据路劲下面的.go文件进行自动识别
D:\VS\Go\src\gocode\project01\main>go build -o new.exe  
D:\VS\Go\src\gocode\project01\main>new.exe
Hello,World!

七、go run和go buil的区别

7.1、go run

  • 用途
    • go run用于编译并运行指定的Go源代码文件或包
  • 编译和运行
    • 该命令会立即编辑源代码,然后运行生成的可执行文件
    • 编译后的可执行文件不会保存到磁盘上,只会在内存中运行
  • 依赖管理
    • go run会自动处理依赖关系,下载和安装所需的依赖包
  • 快速开发
    • 非常适合快速开发和测试,因为它省去了是手动编译的步骤

7.2、Go build

  • 用途

    • go build用于编译指定的Go源代码文件或包,并生成可执行文件
  • 编译

    • 该命令会编译源代码,并将生成的可执行文件保存到当前目录或指定的目录中
    • 默认情况下,生成的可执行文件名为包名(对于main包,通常是mainmain.<平台>
  • 依赖管理

    • go build也会自动处理依赖关系,下载和安装所需的依赖包
  • 发布

    • 生成的可执行文件是独立的,可以分发到其他没有安装Go的环境中运行
  • 交叉编译

    • go build支持交叉编译,通过环境变量GOOSGOARCH可以为不同的操作系统和架构生成可执行文件

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

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

相关文章

【重装系统后重新配置2】pycharm 终端无法激活conda环境

pycharm 终端无法激活 conda 环境&#xff0c;但是 Windows本地终端是可以激活的 原因是pycharm 默认的终端是 Windows PowerShell 解决方法有两个&#xff1a; 一、在设置里&#xff0c;修改为cmd 二、下面直接选择

这是一个bug求助帖子--安装kali 遇坑

第一个报错 介质&#xff1a;kali-linux-2024.1-live-amd64 环境&#xff1a;Dell笔记本 i510代cpu 现象及操作 安装完以后 然后我换了个国内的源进行了以下操作 apt-get update&#xff1a;更新源列表 apt-get upgrade&#xff1a;更新所有可以更新的软件包 然后进行清理。…

教你在.Net8.0的WinForm中使用WebView2,实现C#和JavaScript的实时双向互操作

1. 前言 随着 Web 技术的发展&#xff0c;使用网页内容&#xff08;HTML、JavaScript、CSS 等&#xff09;作为桌面应用程序的一部分变得越来越常见。在 C# WinForm 中&#xff0c;Microsoft 提供的 WebView2 控件让我们可以轻松地嵌入 Chromium 浏览器&#xff0c;并实现 C# …

如何安装QT(linux/windows)

1. linux 1.1 下载安装程序 进入QT官网&#xff0c;点击右上角下载 Qt | Tools for Each Stage of Software Development Lifecycle​www.qt.io/ 然后选择下载linux版本&#xff0c;这里你需要填写一些信息&#xff0c;注册一些即可 填写之后会出现下面这个网页&#xff0c;…

PVE纵览-PVE与VM:谁才是你的最佳虚拟化选择?

PVE纵览-PVE与VM&#xff1a;谁才是你的最佳虚拟化选择&#xff1f; 文章目录 PVE纵览-PVE与VM&#xff1a;谁才是你的最佳虚拟化选择&#xff1f;摘要1 不同虚拟化平台的基础2 平台特性与功能3 性能与可靠性4 成本与经济性5 应用场景比较6 用户体验与支持7 结论与建议 关键字&…

C/C++语言基础--C++模板与元编程系列四(类型模板参数、整数、指针 、模板类型)

本专栏目的 更新C/C的基础语法&#xff0c;包括C的一些新特性 前言 模板与元编程是C的重要特点&#xff0c;也是难点&#xff0c;本人预计将会更新10期左右进行讲解&#xff0c;这是第四期&#xff0c;有些和前面三期重合&#xff0c;这一期也是为明天更新打下基础&#xff…

数据结构:顺序表(动态顺序表)

专栏说明&#xff1a;本专栏用于数据结构复习&#xff0c;文章中出现的代码由C语言实现&#xff0c;在专栏中会涉及到部分OJ题目&#xff0c;如对你学习有所帮助&#xff0c;可以点赞鼓励一下博主喔&#x1f493; 博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;数…

力扣动态规划基础版(矩阵型)

62.不同路径&#xff08;唯一路径问题&#xff09; 62. 不同路径https://leetcode.cn/problems/unique-paths/ 方法一&#xff1a;动态规划 找状态转移方程&#xff0c;也就是说它从左上角走到右下角&#xff0c;只能往右或者往下走&#xff0c;那么设置一个位置为&#xff…

音视频入门基础:FLV专题(23)——FFmpeg源码中,获取FLV文件音频信息的实现(下)

音视频入门基础&#xff1a;FLV专题系列文章&#xff1a; 音视频入门基础&#xff1a;FLV专题&#xff08;1&#xff09;——FLV官方文档下载 音视频入门基础&#xff1a;FLV专题&#xff08;2&#xff09;——使用FFmpeg命令生成flv文件 音视频入门基础&#xff1a;FLV专题…

A021基于Spring Boot的自习室管理和预约系统设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

qt QShortcut详解

1、概述 QShortcut是Qt框架中的一个类&#xff0c;它提供了一种创建键盘快捷键的方式。通过QShortcut&#xff0c;开发者可以将特定的键盘组合&#xff08;如CtrlC、AltF4等&#xff09;与应用程序中的动作&#xff08;如复制、关闭窗口等&#xff09;关联起来。当用户在应用程…

注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型

目录 注意力机制的目的:理解语义中的它是小白兔 词编码器嵌入高纬空间 计算注意力得分“得到S*V” 权重QKV:连接权重 训练阶段使用解码器:翻译后的语句 解码器掩码和交叉注意力层用于训练 最终的编码器和输出实现大模型 Transformer模型中,QKV QKV的作用 举例说明…

jmeter常用配置元件介绍总结之取样器

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之取样器 jmeter常用配置元件介绍总结之取样器 2.取样器2.1.HTTP请求2.2.Debug Sampler2.3.JSR223 Sampler2.4.JDBC Connection Configuration和J…

【大数据学习 | kafka】简述kafka的消费者consumer

1. 消费者的结构 能够在kafka中拉取数据进行消费的组件或者程序都叫做消费者。 这里面要涉及到一个动作叫做拉取。 首先我们要知道kafka这个消息队列主要的功能就是起到缓冲的作用&#xff0c;比如flume采集数据然后交给spark或者flink进行计算分析&#xff0c;但是flume采用的…

从零开始训练一个大语言模型需要多少天?

一&#xff0c;前言 在AI领域&#xff0c;训练一个大型语言模型&#xff08;LLM&#xff09;是一个耗时且复杂的过程。几乎每个做大型语言模型&#xff08;LLM&#xff09;训练的人都会被问到&#xff1a;“从零开始&#xff0c;训练大语言模型需要多久和花多少钱&#xff1f;”…

【SQL50】day 1

目录 1.可回收且低脂的产品 2.寻找用户推荐人 3.使用唯一标识码替换员工ID 4.产品销售分析 I 5.有趣的电影 6.平均售价 7.每位教师所教授的科目种类的数量 8.平均售价 1.可回收且低脂的产品 # Write your MySQL query statement below select product_id from Products w…

Qt菜单功能实现

本文介绍Qt菜单功能实现。 Qt开发过程中&#xff0c;菜单功能用的还是比较多的&#xff0c;本文针对菜单栏和右键菜单功能实现作简要描述。 1.菜单栏 1)界面设计 在界面中添加菜单栏&#xff08;本例中名为“menubar”&#xff09;&#xff0c;并依次添加需要的菜单&#x…

Jupyter Notebook添加kernel的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Java:二维数组

目录 1. 二维数组的基础格式 1.1 二维数组变量的创建 —— 3种形式 1.2 二维数组的初始化 \1 动态初始化 \2 静态初始化 2. 二维数组的大小 和 内存分配 3. 二维数组的不规则初始化 4. 遍历二维数组 4.1 for循环 ​编辑 4.2 for-each循环 5. 二维数组 与 方法 5.1…

手机内卷下一站,AI Agent

作者 | 辰纹 来源 | 洞见新研社 2024年除夕夜&#xff0c;OPPO在央视春晚即将开始前举办了一场“史上最短发布会”&#xff0c;OPPO首席产品官刘作虎宣布&#xff0c;“OPPO正式进入AI手机时代”。 春节假期刚过&#xff0c;魅族又公开表示&#xff0c;将停止“传统智能手机…