Golang入门笔记(10)—— 包

news2024/10/5 12:04:47

        使用包的原因:

1.不可能把所有的不同业务功能的函数都放在一个源文件中,这样不便于管理。通常的做法是:我们会把具有相同一些功能和业务的维度的函数,分门别类的放在不同的源文件中。

2.不同的包名,可以解决两个函数同名的问题,因为在同一个函数中是不能定义两个相同的名字的函数的。这个时候也可以使用包来区分函数。

             提前准备:我在  go-helloworld/com/cosy/util/文件夹下,建了一个go文件——myUtil.go,并在其中写了一个test 函数。使用此test函数的代码如下: 

package main

import (
	"fmt"
	"go-helloworld/com/cosy/util"
)

func main() {

	fmt.Println("")
	util.Test()
}

使用时的注意事项:

  1.  包的声明 用 package 关键字进行声明。建议:包的声明应该和所在的文件夹同名,虽然可以不一样,包和目录文件名 相同。 
  2. main包是程序的入口包,一般main函数会放在main包下。我的理解就是Go语言的运行机制它会从main包中找程序的入口。否则不能编译,不能编译就无法生成 .exe 可执行文件。
  3. 声明包语法 package 包名 和java一样。
  4. 引入包的语法是 import "包路径" 即文件夹的路径 , 包名是从 环境变量 $GOPATH/scr/后开始计算的,使用 / 进行路径的分隔。
    // 包名是从 环境变量 $GOPATH/scr/后开始计算的,使用 / 进行路径的分隔。
    import (
    	"fmt"
    	"go-helloworld/com/cosy/util"
    )
  5.    在函数调用的时候,要定位到所在的包,语法为: 包名.函数() 进行调用。
  6.    首字母大写的才可以被其他包所访问。
  7. 从事项1可知:一个目录下的文件,包声明理论上都是文件夹目录的名称,也就是说,同一目录下不能有重复的函数。亲测,如果同一个目录下,2个文件中都有一个test 方法将有编译错误提示。
  8. 一个目录下的同级文件 归属于同一个包。同一个目录同级的文件,一个 package aaa,另一个package bbb 则是不允许的。必须要相同,或者都叫 package ccc , 最佳的实践 为:package dirName。

包的本质:

        在源文件层面上看,包就是文件夹;而站到在程序层面上看,所有使用相同 package 包名的源文件组成的某个维度的代码模块。

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

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

相关文章

【SQL 中级语法 3】三值逻辑和NULL

普通语言里的布尔型只有true和false两个值,这种逻辑体系被称为二值逻辑。而SQL语言里,除此之外还有第三个值unknown,因此这种逻辑体系被称为三值逻辑(three-valued logic)。 为什么SQL语言采用了三值逻辑呢&#xff1…

java项目-第139期ssm博客系统-ssm毕业设计_计算机毕业设计

java项目-第139期ssm博客系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm博客系统》 该项目分为前台和后台2个部分。 前台不需要登录,游客都可以访问,并发表评论 管理员登录后可以进行文章的发表,分类&…

德鲁克《卓有成效的管理者》学习读书-总结

有幸学习了管理大师德鲁克先生的《卓有成效的管理者》,帮助学习者理清了在理论和实践之间建立桥梁,使其生根落地,开花结果;管理不是常识,管理是个实践学科,要不断温习,不断与领导同事联接&#…

人肠道宏病毒与其宿主和环境因素的关联分析

近期《Nature Communications》期刊上(IF17.694)发表的“Extensive gut virome variation and its associations with host and environmental factors in a population-level cohort”研究论文中,对从4198个个体的肠道宏基因组中获得的人类肠道病毒进行分析&#x…

PCB设计时如何选择合适的叠层方案

大家在画多层PCB的时候都要进行层叠的设置,其中层数越多的板子层叠方案也越多,很多人对多层PCB的层叠不够了解,通常一个好的叠层方案可以降低板子产生的干扰,我们的层叠结构是影响PCB板EMC性能的重要因素,下面我们以四层板和六层板…

刨根问底 Redis, 面试过程真好使

充满寒气的互联网如何在面试中脱颖而出,平时积累很重要,八股文更不能少!下面带来的这篇 Redis 问答希望能够在你的 offer 上增添一把🔥。 在 Web 应用发展的初期阶段,一个网站的访问量本身就不是很高,直接使…

SRM供应商关系管理系统解决方案

SRM供应商关系管理系统解决方案供应商关系管理(SRM)软件的采购指南 什么是供应商关系管理(SRM)软件? 供应商关系管理(SRM)软件是一个通讯解决方案制造商、分销商和零售商的供应链。供应商管理用于将所有有关组织的供应商通讯和颜色编码索引卡片。现在SRM管理的数字由一个国家…

OOM内存溢出分析

Mat内存溢出dump文件分析工具http://www.eclipse.org/mat/downloads.php 模拟OOM Java 程序 package org.cj.oom;import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit;/*** 创建内存分析* java启动参数指定内存 -Xms1m -Xmx1m* author…

没有上司的舞会 - 树形DP

目录题目描述前言C代码题目描述 Ural 大学有 NNN 名职员,编号为 1∼N1∼N1∼N。 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 每个职员有一个快乐指数,用整数 HiH_iHi​ 给出,其中 1≤i≤N1≤i≤N1≤i≤N。…

ElasticSearch分布式搜索引擎安装保姆级教程

ElasticSearch分布式搜索引擎安装教程 一.Hr:ElasticSearch是什么? 答:Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的&#…

后端API接口性能优化的10种方案,真有用!

后端API接口性能优化的10种方案,真有用! 批量思想:批量操作数据库 优化前: //for循环单笔入库 for(TransDetail detail:transDetailList){insert(detail); } 优化后: batchInsert(transDetailList); 打个比喻&…

docker-compose的安装与卸载

compose项目是docker官方的开源项目,负责实现对Docker容器的快速编排 定位 定位是定义与运行多个docker容器的应用,同时可以对多个容器进行编排Compose 中有两个重要的概念: 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的…

电压跌落检测

1.前言 根据国际上较为权威的 IEEE 制定的标准可知,电压跌落是指电力系统中某点工频电压方均根值突然降低至 0.1p.u. ~ 0.9p.u.,并在短暂持续10ms~1min 后恢复正常的现象。在对电压跌落进行检测时一般都需要检测起止时刻、相位跳变、跌落深度这三个特征…

小啊呜产品读书笔记001:《邱岳的产品手记-03》第04+05讲 如何当好AI时代的产品经理 06讲 产品案例分析·TheGuardian的文本之美

小啊呜产品读书笔记001:《邱岳的产品手记-03》第0405讲 如何当好AI时代的产品经理 & 06讲 产品案例分析TheGuardian的文本之美一、今日阅读计划二、泛读&知识摘录1、04讲 如何当好AI时代的产品经理?(学习篇)2、05讲 如何当…

07-服务管理-02-yum常用命令和yum源

文章目录1. yum常用命令1.1 安装卸载服务- 安装- 升级- 卸载- 清空缓存- 只下载不安装1.2 查看- 查看yum库- 列出所有包- 查看包信息- 查看文件所在包1.3 包组的使用2. 指定yum源3. 常用yum源1)epel源2)163源3)阿里源4)清华源4. y…

盘点实验室的----FITC-透明质酸;FITC-HA不同透明质酸分子量修饰

FITC(异硫氰酸荧光素)是一种胺活性衍生物的荧光染料,FITC 具有广泛的应用,作为抗体和其他探针标记,用荧光显微镜,流式细胞仪、免疫荧光方法如 ELISA 和 Western印迹实验。异硫氰酸荧光素(FITC)具有永久性标记生物分子的独特检测性…

【C++】构造函数、析构函数、拷贝构造函数

目录 构造函数 析构函数 拷贝构造函数 C 在 C 语言的基础上增加了面向对象编程,C 支持面向对象程序设计。类是 C 的核心特性,通常被称为用户定义的类型。 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方…

Nginx下载安装以及简单使用

本文来说下Nginx的下载安装以及常用功能的简单使用 文章目录下载nginx启动nginx关闭nginx下载nginx 下载地址:http://nginx.org/en/download.html 直接下载 nginx-1.18.0.zip,下载后解压,解压后如下 启动nginx 有很多种方法启动nginx (1)直接双击nginx.…

浅谈深度学习中的概率

摘要:本次就和大家聊一聊深度学习中的概率。本文分享自华为云社区《【MindSpore易点通】深度学习中的概率》,作者: chengxiaoli。 为什么会用到概率呢?因为在深度学习中经常会需要处理随机的数据,或者包含随机性的任务…

Java基础之《netty(2)—IO模型、BIO介绍、NIO介绍》

一、IO模型 1、I/O模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。 2、Java共支持3种网络编程模型I/O模式:BIO、NIO、AIO。 3、Java BIO:同步并阻塞(传统阻塞型&#xff…