Go语言结构

news2025/1/18 18:56:21

Go语言结构

知识主要参考菜鸟教程。

简单实例

  Go语言的基础组成有以下几个部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句 & 发表达式
  • 注释
package main

import "fmt"

func main() {
    /*这是一行注释*/
    fmt.Println("hello,world")
}

  上述程序各个部分组成:

  1. package main定义了包名。源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表明一个可独立执行的程序,每个Go应用程序都包含一个名为main的包。
  2. import "fmt"告诉Go编译器这个程序需要使用fmt包(的函数,或者其他元素),fmt包实现了格式化IO(输入/输出)的函数。
  3. func main()是程序开始执行的函数。main函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有Init()函数则会先执行该函数)。
  4. /***/是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
  5. fmt.Println(…)可以将字符串输出到控制台,并在最后自动增加换行字符\n。使用fmt.Println(“…\n”)会得到相同的结果。Print和Println这两个函数也支持使用变量。如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量arr输出到控制台。
  6. 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Group 1,那么使用这种形式的标识符对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并可用的(像面向对象语言中的protected)。

关于包需要注意以及使用的问题

  • 文件名与包名没有直接关系,也就是说不一样要将文件名与包名定成同一个。
  • 文件夹名与报名也没有直接关系,也就是说也不需要一致。
  • 同一个文件夹下的文件只能有一个包名,否则会编译出错。

测试用例

文件结构:

效果图

测试代码:

mul.go

package test

import "fmt"

func New() {
	fmt.Println("test packge print")
}

go.mod

module Two

go 1.19

main.go

package main

import (
	"fmt"
	"Two/Calc"   //路径信息
)

func main() {
	test.New()   //包信息
	fmt.Println("main")
}

运行结果:

效果图

注意,博主使用的go版本为1.19.4,同时使用go env命令需要明确注意以下字段为打开模式。

效果图

而go.mod不是自己创建而来,而是通过以下命令生成:

go mod Init Two

go mod tidy

此时在main.go界面运行即可成功编译通过。

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

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

相关文章

北大硕士LeetCode算法专题课-字符串相关问题

算法面试相关专题: 北大硕士LeetCode算法专题课-数组相关问题_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法专题课---算法复杂度介绍_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法专题课-基础算法之排序_骨灰级收藏家的博客-CSDN博客 反转字符串(Lee…

springcloud3 Nacos的服务搭建和生产消费案例

一 nacos 1.1 nacos概念 Nacos是服务注册发现中心配置中心的组合。比eurka实现的功能更加强大。 nacos默认均有负载均衡的功能,集成了netflix的ribbon代码包。 1.2 nacos与其他进行对别 1.3 nacos的配置 1.4 namespace和group和dataid之间的关系 二 nacos的安…

2023年网络工程师必备10大软件,最新安装包分享

常听人说:拳头再硬,也比不上锤子!同样的,作为一个网络工程师只有满腹的技术而不会使用对应的软件工具,是完全不行的。那作为一个2023年的网络工程师必备的软件有哪些呢?以下10大网工必备软件都已整理好安装…

smsalarm怎么读取intouch系统平台的点

有两种方式,分别是DDE和OPC方式 DDE方式 在SMC里面添加SIDIR驱动,连接到1200PLC 在IDE中创建对象DT01并绑定到驱动上 可看到已经可以读取到值了 打开smsalarm 8.26 创建一个DDE连接 创建一个DDE逻辑组 创建一个tag. 名称可以填任意字符串,…

SpringBoot在使用测试的时候是否需要@RunWith?

我们在使用SpringBoot进行测试的时候一般是需要加两个注解: SpringBootTest 目的是加载ApplicationContext,启动spring容器。 RunWith 是一个测试启动器,可以加载SpringBoot测试注解让测试在Spring容器环境下执行。如测试类中无此注解&#…

ORACLE中的行列转换(行转列,列转行)

行转列: 源表: 方法1:case when select y, sum(case when q1 then amt end) q1, sum(case when q2 then amt end) q2, sum(case when q3 then amt end) q3, sum(case when q4 then amt end) q4 from test04 group by y; 效果: …

详解动态库静态库、动态链接静态链接

目录 静态库&&动态库 举例 注意 动态链接 静态链接 静态库&&动态库 静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a” libXXXXXXX.a (windows下是.lib) 动态…

韩国网民钟爱的国内电商平台商品详情响应示例

一、中国电商业的发展,已经超过了欧美等过,大家都喜欢中国的商品,中国商品的特点个人总结有以下几点: 1、款式新颖多样 2、价格实惠 3、品种齐全 二、常用接口响应示例说明 公共参数 展开请求参数 三、返回响应示例 {"…

LeetCode 128. 最长连续序列

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 128. 最长连续序列,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 LeetCode…

反电信网络诈骗普法宣传答题实现联表查询学生的平均成绩

国际经济与贸易学院组织反电信网络诈骗线上答题活动,开展集中普法宣传教育活动,从而构筑立体化反诈骗防线。通过此次比赛,引导广大同学时刻牢记反诈骗内容,提高师生的自我财产安全防范意识,加强自我网络保护的思想理念…

Java中列表的基本操作

文章目录1、定义列表2、增删改操作(1)新增(2)删除(3)修改3、访问列表4、遍历列表(1)for循环遍历(2)foreach遍历(3)iterator迭代器遍历…

weblogic t3协议报错

目录 1、背景 2、报错信息 3、检测t3协议是否正常 1、背景 在上次生产环境版本升级的时候遇到问题,运维人员告知升级失败,然后首先怀疑是版本问题,就仔细检查了版本信息,没发现异常,然后与运维沟通获取到报错信息如…

如何利用 knest 构建数据中心的 Kubernetes as a Service?

随着越来越多的企业和应用转向云原生架构,对 Kubernetes 集群的需求也日趋多样化和灵活化。出于故障隔离的考虑,企业的数据中心往往需要多个独立的 Kubernetes 集群来承载不同的业务,而不是全部署在一个共享 Kubernetes 集群上。此外&#xf…

elastic search window安装,基础概念,项目实例

elastic searchelasticsearch场景window 安装教程基本配置成功标志基础知识名词概念介绍文档元数据索引创建原则创建实例创建索引指定 分区,片区的创建创建带有类型、映射的索引(Index)创建文档创建文档spring boot 整合项目实践全文检索高亮显示elasticsearch场景 …

CANoe的各模块节点是如何选择应用层通道的

当CANoe为Channel-based access模式时,需要配置软硬件通道的映射;当CANoe为Network-based access模式时,需要配置软硬件网络的映射 通道映射: 网络映射: 当然,只有CANoe软件工作模式为Real bus时,才需要软硬件通道或网络映射。如果工作模式为Simulated bus时,不需要软…

如何使用 Authing 实现 AWS CLI 单点登录?

越来越多企业和开发者依赖使用 Authing 单点登录 SSO 来便捷无缝的访问 AWS 服务。随着组织将更多业务上云,为员工提供无缝安全的访问认证,以此来提升员工的工作效率和保障企业的信息安全至关重要。 但随着业务的扩张,会发现在 AWS 环境中管…

pdf转换成word加密怎么办,这个方法能派上用场!

处理文档的时候难免遇到各种难题,就比如格式切换,PDF转word就是很常见的需求。有些工作性质比较特殊,对文档对保密性也有要求。这时候不仅要会把PDF转成word文档,还要学会给文档加密。有没有工具能把这两件事都办到呢?答案是有&a…

直播美颜SDK贴纸功能实现流程、贴纸代码分析

时下,直播美颜SDK已经成了大家日常拍摄以及专业美颜的必备工具。另外它也接入到了各种社交平台、短视频平台、直播平台中,此类平台中大部分用户都熟练掌握了美颜SDK的拍摄技巧,特别是短视频平台中,几乎每个用户都曾经使用过。根据…

极光笔记 | 如何为 iOS 16 创建一个实时活动

01、iOS 16 中的 Live Activity (实时活动)是什么?根据 Apple 官方描述,“实时活动是一项新功能,可帮助用户直接从锁定屏幕实时获知各种事情的进展,例如体育比赛、锻炼、拼车或送餐订单进度等等” 。例如&a…

Revit中基线的作用和【类型可见性】功能

一、Revit中基线的作用 Revit中基线是一个重要但又容易被忽视的内容,本文就简单介绍一下基线的一些常用功能,基线的作用: 1、参照底图 基线调整为其他层时,可以在当前视图中半色调显示,方便参照。 2、定位 3、基线还可…