GO-初识包管理

  • 初识包管理,知道项目中文件和文件夹之间的关系 
  • 输出,代码,在go编译器运行时会显示在屏幕中
  • 初识数据类型
整型,数字。例如:1、2、3、4
字符串类型,表示文本信息的。例如:“张三”“李四”
布尔类型,真假。例如: 1>2
  • 变量&常量,当做是昵称。 
  • 输入,让用户输入内容  
  • 条件语句,开发一个猜数字程序,用户输入数字与咱们定义的数字进行比较  
包管理
关于包管理的总结:
  • 一个文件夹可以称为一个包 
  • 在文件夹(包)中可以创建多个文件 
  • 在同一个包下的每个文件中必须指定‘包名称’且相同 

我们来重新建一个文件 

来比对一下 

这两个go文件 都是package main 

那么我们的这个包的名字就是main 


比如说我们在src这个文件夹下又创建了一个文件夹  叫zyc
在zyc这个文件夹下面我们再创建两个go文件 
在zyc这个文件夹下面的go文件,他们都叫zyc,也可以叫其他名字,但是baidu.go和bilibili.go必须保持一致,因为他们都在zyc这个文件夹,也就是这个包里面 

关于包的分类
  • main包  如果是main包,则必须写一个main函数,此函数就是项目的入口 (main主函数)。编译生成的是一个可执行文件 
func main() {fmt.Println("Hello go")
}
  • 非main包  用来将我们的代码进行分类,分别放在不同的包
我们现在来做一个小实验 
我们重新编辑一下world.go文件  
文件内容如下 
package mainimport "fmt"func Add() {fmt.Println("我是world.go的Add功能")
}
编辑完之后我们去往hello.go文件内添加以下字段,直接调用world.go
package main
import "fmt"
func main() {
    fmt.Println("Hello go")
    Add()
}

运行结果如下

运行结果如下
GOROOT=D:\Go #gosetup
GOPATH=C:\Users\YANG\go #gosetup
D:\Go\bin\go.exe build -o C:\Users\YANG\AppData\Local\JetBrains\GoLand2023.3\tmp\GoLand\___go_build_czy.exe czy #gosetup
C:\Users\YANG\AppData\Local\JetBrains\GoLand2023.3\tmp\GoLand\___go_build_czy.exe
Hello go
我是world.go的Add功能
从上面的图片中我们可以看出,这里所运行的不是单个hello.go这个文件,而是将czy这整个目录,整个包一起运行 现在我们再在czy这个目录下重新创建一个新的目录 zyc
创建两个go文件,baidu.go  google.go

从上面的图片中我们可以看出,这里所运行的不是单个hello.go这个文件,而是将czy这整个目录,整个包一起运行 

现在我们再在czy这个目录下重新创建一个新的目录 zyc

创建两个go文件,baidu.go  google.go

baidu.go内容如下 

package zycimport "fmt"func Baidu() {fmt.Println("我是百度")
}

google.go内容如下 

package zycimport "fmt"func Google() {fmt.Println("我是谷歌")
}

现在我们回到hello.go文件内 

这个时候如果我们要调用baidu.go的功能的话 

我们只需要这样即可

而当我们打出zyc.Baidu()的时候,系统会自动给我们添加这行字段 

自动导入了这个包 


运行结果如下 

GOROOT=D:\Go #gosetup
GOPATH=C:\Users\YANG\go #gosetup
D:\Go\bin\go.exe build -o C:\Users\YANG\AppData\Local\JetBrains\GoLand2023.3\tmp\GoLand\___go_build_czy.exe czy #gosetup
C:\Users\YANG\AppData\Local\JetBrains\GoLand2023.3\tmp\GoLand\___go_build_czy.exe
Hello go
我是world.go的Add功能
我是百度
我是谷歌

到了这里我们需要注意一下

如果是package main  因为他们两都是属于同一个包,所以在调用功能的时候不需要说导入某个包

而如果是其他的包 

那么你就需要先把这个包导入进来,然后才能再调用功能 就如上面我演示的那样 

PS:注意事项 

在私下里面去写代码的时候,在每个文件夹里面编写功能的时候,首字母要大写

如果你是大写的话,那么就认为这是一个公有的功能,外部就可以调用

如果你写的是小写的话就意味着这个功能只能在当前的自己的包里面使用,外部是无法调用的 。后面的内容知识点我会再去细讲 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【嵌入式——QT】Charts常见的图表的绘制

【嵌入式——QT】Charts常见的图表的绘制 柱状图QBarSetQBarSeriesQBarCategoryAxis图示 饼图堆叠柱状图百分比柱状图散点图和光滑曲线图代码示例 柱状图 QBarSet 用于创建柱状图的数据集。 主要函数 setLabel():设置数据集标签 ;setLabelBrush()&am…

AI新工具(20240322) 免费试用Gemini Pro 1.5;先进的AI软件工程师Devika;人形机器人Apptronik给你打果汁

✨ 1: Gemini Pro 1.5 免费试用Gemini Pro 1.5 Gemini 1.5 Pro是Gemini系列模型的最新版本,是一种计算高效的多模态混合专家(MoE)模型。它能够从数百万个上下文Token中提取和推理细粒度信息,包括多个长文档和数小时的视频、音频…

LabVIEW飞行器螺旋桨性能测试与数据监控

LabVIEW飞行器螺旋桨性能测试与数据监控 开发LabVIEW的电动飞行器螺旋桨性能测试与数据监控系统,专门针对电动飞行器螺旋桨在运行过程中的性能测试和监控需求。通过采集转速、转矩、拉力和温度等关键参数,系统能够实时监测和分析螺旋桨的状态&#xff0…

「渗透笔记」致远OA A8 status.jsp 信息泄露POC批量验证

前言部分 在本节中,我会分两部分来说明致远OA A8 status.jsp 信息泄露的验证问题,其实就是两种验证方式吧,都一样,都是批量验证,主要如下所示: 通过Python脚本进行批量验证,但是前提是你可以收…

力扣hot100:153. 寻找旋转排序数组中的最小值(二分的理解)

由力扣hot100:33. 搜索旋转排序数组(二分的理解)-CSDN博客,我们知道二分实际上就是找到一个策略将区间“均分”。对于旋转数组问题,在任何位置分开两个区间,如果原区间不是顺序的,分开后必然有一…

AI智能分析网关V4在养老院视频智能监控场景中的应用

随着科技的快速发展,智能监控技术已经广泛应用于各个领域,尤其在养老院这一特定场景中,智能监控方案更是发挥着不可或缺的作用。尤其是伴随着社会老龄化趋势的加剧,养老院的安全管理问题也日益凸显。为了确保老人的生活安全&#…

旅游小程序开发的费用及功能

随着科技的发展和智能手机的普及,越来越多的行业开始利用小程序来进行线上服务。旅游业作为一个重要的服务业,也纷纷推出了自己的旅游小程序,以方便游客在线预订、查询景点信息等。那么,旅游小程序开发的费用是多少?功…

【软件测试】探索和学习在模型中的软件测试

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-JIGESSc1ecUpVUnH {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

支持度和置信度

支持度和置信度是数据挖掘和关联规则挖掘领域中常用的两个指标,用于衡量项集之间的关联程度。 支持度(Support):支持度是指某个项集在数据集中出现的频率,即该项集在数据集中出现的次数与总事务数之比。支持度用来衡量…

Prometheus Grafana 配置仪表板

#grafana# 其实grafana提供了丰富的Prometheus数据源的仪表板,基本上主流的都有,通过下面官方地址可查阅 Dashboards | Grafana Labs 这里举例说明,配置node_exporter仪表板 首先,在上面的网站搜索 node 可以查到蛮多的仪表板…

备考ICA----Istio实验4---使用 Istio 进行金丝雀部署

备考ICA----Istio实验4—使用 Istio 进行金丝雀部署 上一个实验已经通过DestinationRule实现了部分金丝雀部署的功能,这个实验会更完整的模拟展示一个环境由v1慢慢过渡到v2版本的金丝雀发布. 1. 环境清理 kubectl delete gw/helloworld-gateway vs/helloworld dr/helloworld…

C++一维数组练习 洛谷

1.冰雹猜想 #include<bits/stdc.h> using namespace std; int main() {int n,a[1002]{0},i1;//i是记个数用的cin>>n;while(n!1)//重点{a[i]n;i;if(n%20) n/2;else n3*n1;}a[i]1;//开始准备输出for(int ji;j>1;j--){cout<<a[j]<< ;}return 0; } #in…

AcWing 1250. 格子游戏 (并查集,坐标变换)

记录此题的目的&#xff1a; 明确二维的坐标可以映射到一维&#xff1a;在x和y都是从0开始的前提下&#xff0c;假如图形列数为n&#xff0c;(x,y)映射到一维可以写成x * n y。并查集并不好存储二维数据&#xff0c;如果遇到二维数据可以将其映射到一维。 Alice和Bob玩了一个…

python爬虫之xpath+多进程爬取百度贴吧实战

文章目录 抓取百度贴吧的某一个帖子的评论内容前言先查看贴吧的robots.txt页面结构分析评论者头像&#xff0c;用户抓取评论内容的抓取评论下回复内容的抓取 源码实现贴吧抓取过程源码实现多进程的实现 抓取百度贴吧的某一个帖子的评论内容 前言 本项目实战是用来学习用&#…

xercesc库中文保存XML功能实现

目录 一 参考链接 二 运行结果 三 代码 一 参考链接 DOM Programming Guide (apache.org) Xerces-c DOM XML文件的构造_xerces-c domimplementation-CSDN博客 Xerces-c库的使用-CSDN博客 二 运行结果 三 代码 #if 1//参考链接&#xff1a; https://blog.csdn.net/RGBMa…

VUE3.0(一):vue3.0简介

Vue 3 入门指南 什么是vue Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。无论是简单还是复杂的界…

租用阿里云2核2G服务器配置报价,61元和99元

阿里云2核2G服务器配置优惠价格61元和99元&#xff0c;61元是轻量应用服务器2核2G3M带宽、50G高效云盘&#xff0c;99元服务器是ECS云服务器经济型e实例2核2G、3M固定带宽、40G ESSD entry 系统盘。活动 aliyunfuwuqi.com/go/aliyun 阿里云服务器网aliyunfuwuqi.com根据上面的官…

如何减少pdf的文件大小?pdf压缩工具介绍

文件发不出去&#xff0c;有时就会耽误工作进度&#xff0c;文件太大无法发送&#xff0c;这应该是大家在发送PDF时&#xff0c;常常会碰到的问题吧&#xff0c;那么PDF文档压缩大小怎么做呢&#xff1f;因此我们需要对pdf压缩后再发送&#xff0c;那么有没有好用的pdf压缩工具…

1、goreplay流量回放

目的 在实际项目中&#xff0c;会有大量的回归测试工作&#xff0c;通常会使用自动化代码的手段来实现回归&#xff0c;但是对于一个庞大的系统来说&#xff0c;通过自动化脚本的方式来实现回归测试&#xff0c;又显得很费时费力。并且如果有定期将线上数据同步到测试环境的需求…

制作一个RISC-V的操作系统六-bootstrap program(risv 引导程序)

文章目录 硬件基本概念qemu-virt地址映射系统引导CSR![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/86461c434e7f4b1b982afba7fad0256c.png)machine模式下的csr对应的csr指令csrrwcsrrs mhartid引导程序做的事情判断当前hart是不是第一个hart初始化栈跳转到c语言的…