【golang学习之旅】Go程序快速开始 Go程序开发的基本注意事项

news2024/9/21 4:30:23

系列文章

【golang学习之旅】使用VScode安装配置Go开发环境
【golang学习之旅】报错:a declared but not used
【golang学习之旅】Go 的基本数据类型
【golang学习之旅】深入理解字符串string数据类型
【golang学习之旅】go mod tidy
【golang学习之旅】记录一次 panic case : reflect: reflect.Value.SetInt using unaddressable value
【golang学习之旅】记录一次 error case : full error output: cc1: error: unrecognized command line option


目录

  • 系列文章
  • 快速开始
    • Hello World
    • 代码解释
    • 编译和运行
  • Go程序开发的注意事项


快速开始

Hello World

先在本地创建一个目录,用来放我们后面的练习代码:

在这里插入图片描述

打开VScode,点击下面绿框里的按键来打开我们上面创建的目录
在这里插入图片描述

然后在这个目录下创建一个main目录,main目录下创建一个以.go为后缀的文件,名为hello_world.go

在这里插入图片描述

在文件里写入下面的代码:

package main

import "fmt"

func main() {
	fmt.Println("Hello World")
}

打开VScode的terminal,进入到go文件所在的目录下

在这里插入图片描述

然后使用go build命令对该go文件进行编译,如果编译成功则在该目录下生成 一个同名的.exe文件(Windows)

在这里插入图片描述

然后执行该exe文件

在这里插入图片描述


代码解释

我们来解读这个代码

package main

import "fmt"

func main() {
	fmt.Println("Hello World")
}
  • package main

    • Go 语言的代码通过(package)组织,包类似于其它语言里的库(libraries)或者模块(modules)。一个包由位于单个目录下的一个或多个 .go 源代码文件组成,目录定义包的作用
    • 每个源文件都以一条 package 声明语句开始,这个例子里就是 package main,表示该文件属于哪个包
  • import "fmt"

    • 导包。包名一般都是小写
  • func main() {}

    • func关键字定义了一个函数,函数名为main
    • 一个函数的声明由 func 关键字、函数名、参数列表、返回值列表(这个例子里的 main 函数参数列表和返回值都是空的)以及包含在大括号里的函数体组成
    • main 函数是整个程序执行时的入口
  • fmt.Println("Hello World")

    • Println是fmt包里的一个基础函数,可以打印以空格间隔的一个或多个值,并在最后添加一个换行符,从而输出一整行
    • Go语言严格区分大小写。若一个包的函数要被其他包里的代码调用,那么这个函数名需要首字母大写
    • 在使用其他包的函数时,一般都是 包名.函数名 的格式

编译和运行

上面的方法是先编译再运行,实际上可以直接使用go run命令直接编译运行,但这种方式不会在目录下生成exe可执行文件

而可执行文件可以在没有Go开发环境的机器上运行

在这里插入图片描述

注意:

  • go build可以指定可执行文件的文件名(在Windows系统中必须以.exe为后缀):go build -o hello.exe

  • 如果程序有错误,在编译时会在错误的那行报错


Go程序开发的注意事项

  1. Go源文件以 “go”为扩展名

  2. Go程序的执行入口是main()函数

  3. Go语言严格区分大小写

  4. Go方法是由一条条语句构成,每个语句后不需要分号,因为Go的编译器会主动把特定符号后的换行符转换为分号

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

  6. Go程序中定义的变量或者import的包如果没有使用到,代码不能编译通过,IDE也会报红提示

    在这里插入图片描述

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

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

相关文章

【云原生|K8S系列】如何创建Kubernetes job和Cronjobs 入门指南

本kubernetes教程解释了如何创建kubernetes作业和cronjobs,以及它的基础知识、用例和一些提示和技巧。 什么是Kubernetes Job? Kubernetes job和cronjob是Kubernetes对象,主要用于短期和批处理工作负载。 kubernetes作业对象基本上部署了一个pod&…

鸣人的影分身(DP)

在火影忍者的世界里,令敌人捉摸不透是非常关键的。 我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。 影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。 针对不同的作战情况&a…

构建多模态模型,生成主机观测指标,欢迎来战丨2024天池云原生编程挑战赛

在当前云计算和微服务架构日益普及的背景下,企业和开发者对云资源的依赖日益加深。Elastic Compute Service(ECS)作为提供计算能力的核心服务,承担着众多的业务。随着微服务架构的广泛应用,任务的部署和执行变得更为灵…

测试范围不足漏测问题 4大解决技巧

日常开发测试过程中,经常出现:开发人员改动产品测试人员不知道,或测试范围不足,导致产品漏测的情况。这往往导致产品发布后出现未发现的缺陷,产品体验效果不佳,影响客户满意度。而严重的缺陷需要紧急修复&a…

SAP MIGO 050 BADI:字段 GOITEM-XXXXX 未准备好输出

背景: MIGO过账时候需要根据某些条件更改某些字段的值,当要改的字段在前台不显示时,通过MB_MIGO_BADI~LINE_MODIFY去更改时,则会出现以下报错:MIGO050 解决方案1: 通过配置将该字段配置显示出来即可&…

黑马头条Minio报错non-xml response from server错误的解决方法

今天在写项目的时候,想测试minio上传文件功能是否正常, 但是每次都出现non-xml response from server的错误。 自己也在网上找了很多解决方法,大部分是说用户名和密码的配置问题,但是检查后发现并没有错误。 最后发现是自己的dock…

瓦罗兰特教你怎么玩低价区+超适配低价区的免费加速器

《无畏契约》(VALORANT)是一款款英雄为核心的5V5第一人称战术射击PC游戏。在瓦罗兰特游戏中,玩家完成每日任务即可以获得大量的经验升级,另外我们也可以多多完成主线和支线任务,来加快升级的速度。玩家通过挑战副本&am…

深度学习(十三)——损失函数与反向传播

一、损失函数:Loss Function 官网文档:torch.nn — PyTorch 2.0 documentation 1. Loss Function的作用 每次训练神经网络的时候都会有一个目标,也会有一个输出。目标和输出之间的误差,就是用\(Loss\) \(Function\)来衡量的。所以…

C++跨平台socket编程

C跨平台socket编程 一、概述1.1 TCP协议1.1 TCP 的主要特性1.2 TCP报文格式 UDP报文格式IP协议使用windows编辑工具直接编辑Linux上代码 二、系统socket库1.windows上加载socket库2.创建socket2.1 windows下2.2 linux下 3.网络字节序4.bind端口5.listen监听并设置最大连接数6.a…

【Linux】环境基础开发工具使用(yum、vim、gcc/g++、gdb、make/Makefile)

文章目录 Linux 软件包管理器 yumLinux开发工具Linux编辑器-vim使用vim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行模式各命令汇总批量化注释和批量化去注释vim简单的配置解决一个小问题 Linux编译器-gcc/g作用gcc/g 语法预处理编译汇编链接什么是函数库 Linux调…

vscode + CMake编译(opencv显示图片工程)

1.opencv 2.Cmake 2.1 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件;Cmake 并不直接建构出最终的软件,而是产生标准的建…

mfc140.dll电脑文件丢失的处理方法,这4种方法能快速修复mfc140.dll

mfc140.dll文件是一个非常重要的dll文件,如果它丢失了,那么会严重的影响程序的运行,这时候我们要找方法去修复mfc140.dll这个文件,那么你知道怎么修复么?如果不知道,那么不妨看看下面的mfc140.dll文件丢失的…

1980python个性化电影推荐管理系统mysql数据库Django结构layUI布局elasticsearch存储计算机软件工程网页

一、源码特点 python Django个性化电影推荐管理系统是一套完善的web设计系统mysql数据库 利用elasticsearch存储浏览数据 ,对理解python编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 开发环境pycharm…

Java面试八股之myBatis中#{}和${}标识的区别是什么

myBatis中#{}和${}标识的区别是什么 MyBatis中的#{}和${}都是用来动态地向SQL语句中插入参数的,但它们之间存在几个关键的区别: 预编译与字符串替换: #{}是预编译处理的参数占位符。MyBatis会将#{}中的内容替换为一个预编译语句的参数标记…

全民拼购:引领商业新潮流,共创共赢新篇章

在当下的商业格局中,一种曾被忽视但实则具有颠覆性价值的商业理念正在逐步显露其锋芒。与传统的交易方式相悖,这一模式在我近期接触到的某个实例中,即便在用户基数尚未突破二十万之际,也能实现日均销售额逼近五千万的辉煌成绩&…

2024青海三支一扶招1910人7月6日笔试

📢2024年青海省三支一扶计划招募1910人公告已发布! 小🀄️帮大家整理好了考试关键时间点: ★ 报名时间:6月20日至6月25日 ★ 报名网站:青海省人事考试信息网(www.qhpta.com) ★ 网上…

停止 Windows 更新

首先按住 win r,输入 regedit: 点击确认,进入注册表页面: 依次点击右侧:HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> WindowsUpdate -> UX -> Settings: 进入编辑器后,右键…

亲测:无影云电脑免费三个月已经缩短为1个月

亲测:无影云电脑免费三个月已经缩短为1个月,大家不要再找3个月的无影云电脑,已经没有了,目前最新消息是1个月。以前可以领3个月,现在只能领1个月,在阿里云免费中心 https://free.aliyun.com/ 大家自己看吧&…

实验室自用LabVIEW软件与商用软件价格差异分析

实验室自用LabVIEW软件与商用软件在价格上的差异源于功能与扩展包、技术支持与服务、使用场景与合规性、更新与维护、市场与定价策略、培训与教育资源及许可证管理与合规审计等方面的不同。商用软件提供更全面的功能和支持,确保高可靠性和合规性,因此价格…

Golang的Gin框架

目录 功能以及简单使用 gin.Engine数据结构 RouterGroup methodTrees gin.context 功能以及简单使用 功能: • 支持中间件操作( handlersChain 机制 ) • 更方便的使用( gin.Context ) • 更强大的路由解析能力&#xff08…