Golang入门笔记(11)—— 包

news2024/12/22 17:11:30

        使用包的原因:

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/14643.html

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

相关文章

Java面对对象的特征之二:继承性 :why?

一、继承性的好处: 减少了代码的冗余,提高了代码便于功能的扩展为之后的多态性的使用,提高了前提 二、继承性的格式:class A extends B{} A:子类、派生类、subclass B:父类、超类、基类、superclass 提现&#xff1…

数据中台解决方案-最新全套文件

数据中台解决方案-最新全套文件一、建设背景面临的挑战1、数据孤岛2、管理困难3、感知不强4、融合不足5、响应滞后二、思路架构三、建设方案四、获取 - 数据中台全套最新解决方案合集一、建设背景 在数字化转型及大数据战略布局背景下,建设大数据平台及数据应用。其…

idea连接kerberos认证的hive

其实用dbeaver连接hive就可以了。但是呢,idea也有这个功能,本着研究下的想法就试试。 结果最后成功了 最后记录下。 参考文章。感觉不太行 PyCharm,idea通过插件database连接带Kerberos的hive_不饿同学的博客-CSDN博客 里面提到了两个解决办法&#…

D. Non-zero Segments(前缀和)

Problem - 1426D - Codeforces 题意: 科利亚得到一个整数数组a1,a2,...,an。这个数组既可以包含正整数也可以包含负整数,但是Kolya不喜欢0,所以这个数组不包含任何零。 Kolya不喜欢他的数组中某些子段的总和为0,子段是数组中一些连续的元素…

IDR 学习笔记

Multiview Neural Surface Reconstruction by Disentangling Geometry and Appearance 主页:https://lioryariv.github.io/idr/ 论文:https://arxiv.org/abs/2003.09852 代码:https://github.com/lioryariv/idr 效果展示 idr_fountain效果图…

【面试题】循环队列队列实现栈栈实现队列

1️⃣设计循环队列OJ链接 2️⃣用队列实现栈OJ链接 3️⃣用栈实现队列OJ链接 这几道面试题需要栈和队列的知识,它们的相关知识可以看我的上一篇文章 1️⃣设计循环队列 先来了解一下环形队列,这也是循环队列的思想,空间是固定的,数…

Kafka分区策略

默认分区器DefaultPartitioner (1)指明partition的情况下,直 接将指明的值作为partition值; (2)没有指明partition值但有key的情况下,将key的hash值与topic的 partition数进行取余得到partiti…

代谢组学——最接近生物表型的组学

■ 什么是代谢组学 在基于基因组-转录组-蛋白质组-代谢组的系统生物学框架内,代谢组学 (metabolomics/metabonomics) 处于最下游,最接近生物表型,主要通过考察生物体系在某一特定时期内受到刺激或扰动前后所有小分子代谢物 (分子量小于 1500…

信创国产化大背景下,应用性能体验如何保障?

信创产业是拉动中国经济增长不可或缺的重要抓手。从2020年我国迈入信创发展元年,到2022年信创开始向行业“深水区”迈进,信创产业得到了国家相关政策的大力支持。今年9月底国家下发79号文,全面指导国资信创产业的发展和进度,明确要…

bootstrap导航窗格响应式二级菜单

这次碰到的需求是响应式二级导航窗格,默认的导航窗格只有点击下拉框的二级窗格,会有如下问题:一级菜单无法添加超链接,二级菜单展示要多点一下。 实现目标: 1.滑动到指定区域,展示二级菜单。 2.一级菜单和…

Vue3 - 响应式工具函数(使用教程)

前言 您需要对 ref()、reactive() 有所了解,否则要先学习这些。 Vue3 为响应式提供了一些工具函数,辅助开发: API说明isRef()检查某个值是否为 ref。isProxy()检查一个对象是否是由 reactive()、readonly()、shallowReactive() 或 shallowRe…

前端国际化如何对中文——>英文自动化翻译小demo

非专业的国际化语言。 需求是把zh.js文件中的对象的值转换为en.js(也就是实现中英文翻译) 结果: 话不多说,上技巧! 首先找个免费翻译的API接口,我找的百度翻译的API接口。百度翻译开放平台看百度翻译技术…

仅此一招,再无消息乱序的烦恼

1. 概览 RocketMQ 早已提供了一组最佳实践,但工作在一线的伙伴却很少知道,项目中的各种随性代码经常导致消息错乱问题,严重影响业务的准确性。为了保障最佳实践的落地,降低一线伙伴的使用成本,统一 MQ 使用规范&#…

AF488 NHS,AF488 活性酯,Alexa Fluor488 NHS,水溶性小分子绿色荧光标记染料

AF488 NHS通过引入两个磺酸根离子,AF488的水溶性大大增强,荧光强度增加,pH稳定性,光稳定性也提高,但是它的激发和发射谱图基本保持不变。不像荧光素类染料,AF488的荧光在较宽的pH范围内(4 – 10)保持不变。…

ATF源码篇(八):docs文件夹-Components组件(7)固件配置框架

7、固件配置框架 fconf/索引 本文档概述了固件配置框架 7.1 固件配置框架是什么? 1 介绍 固件配置框架(|FCONF|)是平台特定数据的抽象层,允许查询“属性”并检索值,而请求实体不知道使用什么后备存储来保存数据。 …

Java接口(Interface)

文章目录接口语法注意事项和细节实现接口VS.继承类接口的多态特性小练习usb插槽就是现实中的接口。 你可以把手机,相机,u盘都插在usb插槽上,而不用担心那个插槽是专门插哪个的,原因是做usb插槽的厂家和做各种设备的厂家都遵守了统一的规定包括尺寸,排线等等。 首先创…

ISP-Gamma

参考:https://blog.csdn.net/lxy201700/article/details/24929013 http://www.cambridgeincolour.com/tutorials/gamma-correction.htm 1. 什么是Gamma Gamma是一种指数曲线,显示器用这个指数曲线来调整真实输出到显示屏幕上的颜色值,以此更好的适应人…

卷?这份Java后端架构指南首次公开就摘星百万,肝完直接60K+

最近和各位小伙伴儿私下聊的比较多,各个阶段的朋友都有;因为大环境的内卷,导致大家在求学、求职、提升自己的各个方面都多多少少有些迷茫焦虑; 这些其实是一个非常普遍且正常的现象,会焦虑的人,往往都是对…

大学生简单个人静态HTML网页设计作品 HTML+CSS制作我的家乡杭州 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

蓝牙学习一(简介)

1.简介 蓝牙分为经典蓝牙(BT-Bluetooth)和低功耗蓝牙(BLE-Bluetooth Low Energy),本次主要学习BLE。 BLE分了很多个版本,现在用的比较多的就是4.2和5.X。那4.2到5.0之间有哪些升级呢?首先&#…