Golang -> Go 语言快速开发入门

news2025/1/16 21:04:32

Go 语言快速开发入门

  • 开发一个 hello.go 程序
  • Golang 执行流程分析
    • 两种执行流程的方式区别:
    • 编译和运行说明
  • Go 程序开发的注意事项
  • 注释
    • 行注释
    • 多行注释

开发一个 hello.go 程序

package main

import "fmt"

func main() {
	fmt.Print("hello")
}

输出:
hello

在这里插入图片描述

对上图的说明

  • go 文件的后缀是 .go
  • package main 表示该 hello.go 文件所在的包是 main, 在 go 中,每个文件都必须归属于一个包。
  • import “fmt” 表示:引入一个包,包名 fmt, 引入该包后,就可以使用 fmt 包的函数
    • 比如:fmt.Println
  • func main() { }
    • func 是一个关键字,表示一个函数。
    • main 是函数名,是一个主函数,即我们程序的入口。
  • fmt.Println(“hello”) 表示调用 fmt 包的函数 Println 输出 hello,world

Golang 执行流程分析

  • 如果是对源码编译后,再执行,Go 的执行流程如下图
    在这里插入图片描述

  • 如果我们是对源码直接 执行 go run 源码,Go 的执行流程如下图
    在这里插入图片描述

两种执行流程的方式区别:

  • 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有 go 开发环境的机 器上,仍然可以运行
  • 如果我们是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发 环境,否则无法执行。
  • 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了 很多。

编译和运行说明

  • 有了 go 源文件,通过编译器将其编译成机器可以识别的二进制码文件。

  • 在该源文件目录下,通过 go build 对 hello.go 文件进行编译。可以指定生成的可执行文件名

  • 在windows 下 必须是 .exe 后缀, Linux 下是一个可执行文件
    在这里插入图片描述
    在这里插入图片描述

  • 如果程序有错误,编译时,会在错误的那行报错。有助于程序员调试错误
    在这里插入图片描述

Go 程序开发的注意事项

  • Go 源文件以 “go” 为扩展名。

  • Go 应用程序的执行入口是 main()函数。

  • Go 语言严格区分大小写。

  • Go 方法由一条条语句构成,每个语句后不需要分号(Go 语言会在每行后自动加分号)

  • Go 编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错

  • Go 语言定义的变量或者 import 的包如果没有使用到,代码不能编译通过。

    • 用goland开发工具,不适用会自动删除
  • go 语言定义的变量或者 import 的包如果没有使用到,代码不能编译通过
    在这里插入图片描述

  • 大括号都是成对出现的,缺一不可。

注释

  • 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性;
  • 注释是一个程序员必须要具有的良好编程习惯。
  • 将自己的思想通过注释先整理出来,再用代码去体现。

行注释

在这里插入图片描述

多行注释

在这里插入图片描述

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

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

相关文章

Cesium 入门

文章目录 一、了解 Cesium二、创建第一个 Cesium 地球三、案例1. Cesium 查看器、场景、实体、数据源介绍2. Cesium 的坐标与转换3. Cesium 相机系统方法一:setView方法二:flyTo方法三:lookAt方法四: viewBoundingSphere 四、案例…

【Leetcode60天带刷】day27回溯算法——39. 组合总和,40.组合总和II,131.分割回文串

​ 题目: 39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一…

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

目录 前言为什么会出现 Redis?磁盘、内存数据库缓存中间件 安装Redis5Redis6 使用总结 前言 Redis 中文网站:http://redis.cn/ Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库…

【编译、链接、装载十二】动态链接2

【编译、链接、装载十二】动态链接2 四、延迟绑定(PLT)五、动态链接相关结构1 “.interp”段2 “.dynamic”段3 .动态符号表——dynsym、动态符号字符串表——.dynstr4、动态链接重定位表 六、动态链接的步骤和实现1、动态链接器自举2、装载共享对象3、重…

2.10 高性能异步IO机制:io_uring

一、io_uring的引入 为了方便说明io_uring的作用,先举一个通俗点的例子 1、通过异步提高读写的效率 假设有一批数量很大的货,需要分批次运到厂里处理。这个时候就有两种方式: 1)同步方式:运送一批到厂里&#xff0c…

TypeScript ~ TS 掌握编译文件配置项 ④

作者 : SYFStrive 博客首页 : HomePage 📜: TypeScript ~ TS 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &…

初识EasyX图形库

EasyX图形库 1. EasyX是什么?2. 入手EasyX3. EasyX函数介绍创建和关闭绘图窗口操作initgraphclosegraph 设置绘图背景setbkcolorcleardevice 画图形circlefillcirclerectanglefillrectangle 图形颜色及样式设置setfillcolorsetlinecolorsetbkcolorsetbkmodesetlines…

计算物理专题:有限差分法解决本征值问题

计算物理专题:有限差分法解决本征值问题 定态薛定谔方程差分形式 一维定态薛定谔方程 谐振子 解法代码 import numpy as np def householder(symmetric_matrix):M symmetric_matrixassert np.allclose(M,M.T),"matrix is not symmetric"N len(M)for …

chatgpt赋能python:用Python分析电影评分数据

用Python分析电影评分数据 Python是一种流行的数据分析和可视化工具,它可以让我们更深入地了解电影的评分数据。在本文中,我们将使用Python来分析一些电影评分数据,并试图找出一些有趣的模式和趋势。 数据来源 我们将使用公共数据集IMDb电…

第4章 网络层

1‌、下列关于路由算法描述错误的是( ) A. 链路状态算法是一种全局路由算法,每个路由器需要维护全局状态信息B. OSPF 是一种域内路由协议,核心是基于 Dijkstra 最低费用路径算法C. RIP 是一种域内路由算法,核心是基…

采用SqlSugar的DBFirst相关功能创建数据库表对应的实体类

.NET Core官方教程中推荐使用的EF Core数据库ORM框架虽然能用,但是用起来并不是太方便(或者是不习惯,之前用的最多的还是linq)。之前下载的开源博客项目中使用的SqlSugar,后者是由果糖大数据科技团队维护和更新 &#…

基于WebAssembly构建Web端音视频通话引擎

Web技术在发展,音视频通话需求在演进,怎么去实现新的Web技术点在实际应用中的值,以及给我们带来更大的收益是需要我们去探索和实践的。LiveVideoStackCon 2022北京站邀请到田建华为我们从实践中来介绍WebAssembly、WebCodecs、WebTransport等…

【裸机开发】IRQ 中断服务函数(一) —— 汇编初始化

IRQ 和前面的Reset 函数不大一样,当一个IRQ中断产生时,我们也不知道这个IRQ中断来自哪个外设,因此,需要先获取到中断ID,随后才会跳转到真正的中断服务函数执行处理逻辑。 整个 IRQ 中断处理可以看做是包含了两个部分&…

MySQL 自增主键一定是连续的吗?

众所周知,自增主键可以让聚集索引尽量地保持递增顺序插入,避免了随机查询,从而提高了查询效率 但实际上,MySQL 的自增主键并不能保证一定是连续递增的。 下面举个例子来看下,如下所示创建一张表: 自增值保…

ORCA优化器浅析——GP数据库调用优化器流程

首先我们需要看CGPOptimizer类(src/include/gpopt/CGPOptimizer.h)为Greenplum数据库提供ORCA优化器export出来的函数的封装。Greenplum数据库主流程调用extern "C"中提供的函数,比如初始化ORCA优化器的函数InitGPOPT,优化查询树的函数GPOPTOp…

springboot+jsp农产品商城宣传网站设计与实现oo6e3

在该在线助农系统设计与实现中,idea能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其功能有比较灵活的数据应用,只需利用小部分代码…

【Leetcode60天带刷】day30回溯算法——332.重新安排行程 , 51. N皇后 ,37. 解数独

​ 题目: 332. 重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,…

【从零开始学习JAVA | 第十四篇】继承

目录 前言: 引入: 继承: 小拓展: 优点: 成员方法的继承问题: 总结: 前言: 继承是面向对象三大特性之一,它是在封装之后我们讲解的一个重要的性质,继承…

在github上创建个人主页的方法【2023更新版】

01-进入github的网站,链接 https://github.com/ ,然后注册,登陆,注意登陆时设置的用户名(username)就是将来你个人主页的三级域名,所以这里一定要慎重填写username。如下图所示: 02-注册完成后进入个人主…

2024考研408-计算机组成原理第四章-指令系统

文章目录 前言一、指令系统现代计算机的结构1.1、指令格式1.1.1、指令的定义1.1.2、指令格式1.1.3、指令—按照地址码数量分类①零地址指令②一地址指令(1个操作数、2个操作数情况)③二地址指令④三地址指令⑤四地址指令 1.1.4、指令-按照指令长度分类1.…