go学习笔记(2)——go环境安装及代码包说明

2023-05-16

Linux下go的环境变量的配置
首先将下载的go的安装包解压到/usr/local中
(1)下载方法:
go-1.8 Linux x86_64 下载
$ wget http://ark.mytorchwood.com:6688/install/go-1.8/\go1.8.linux-amd64.tar.gz --user=dg --password=On1shiuva4
(2)go解压安装到usr/local下
$ sudo tar -C /usr/local -xzvf go1.8.*-amd64.tar.gz
(3)环境变量的配置举例如下四条命令:
export GOROOT=/usr/local/go
export GOPATH=~/golib:~/goproject
export GOBIN=~/gobin
export PATH=$PATH:$GOROOT/bin:$GOBIN
环境变量具体设置和保存细节
(4)工作区和gopath
  1. 一般来说源码包放在工作区中
  2. 工作区结构
    1. src----存放源码文件,一般以代码包为组织形式
    2. pkg---用于存放归档文件,名称以.a为后缀的文件,以代码包为组织形式(一般放库源码文件)
    3. bin----用于存放当前工作区中go程序的可执行文件(gobin设置时该目录并没有实际意义)
(5)源码文件的分类和含义
  1. go源码文件,以.go为后缀的文件
  2. Go源码文件分类
    1. 命令源码文件-----声明自己属于main代码包,包含无参数声明和无结果声明,相当于go语言的入口程序,但是不建议将所有的程序都写在一个文件中 
    2. 库源码文件(1,2属于go语言程序)
    3. 测试源码文件(3属于辅助源码文件)——至少以Test或者Benchmark为前缀,并且该函数接受一个类型为*testing.T或者*testing.B的参数
(6)代码包的相关
  1. 代码包的作用
    1. 编译和归档go程序的最基本单位 
    2. 代码划分,集结和依赖的有效组织形式,也是权限控制的辅助手段
  2. 代码包的规则
    1. 一个代码包就是由导入路径代表的目录 
  3. 代码包的声明
    1. 每个原文件必须声明其所在的代码包
    2. 每个代码包下面的所有源码文件声明的代码包应该是相同的
  4. 代码包声明与代码包导入路径的区别
    1. 代码包声明中的包名称应该是该代码包的导入路径的最右子路径
    2. 代码包导入语句中使用的包名称应该与其导入路径一致
    3. 带别名的导入———import str “strings”
    4. 本地化的导入———import . “strings”        (相当于调用strings下面的方法时等同于调用当前文件下的方法)
    5. 仅仅初始化————import _ “strings”         (仅仅是执行代码包中的初始化函数,而没有调用代码包中的任何程序实体)
  5. 代码包的初始化
    1. 无参数声明和无结果声明的init函数,init可以被声明在代码包的任何位置,且可以有多个 
    2. init函数的执行时机
      1. 单一代码包内 ——先对所有全局变量进行求值,在执行所有的init函数 ,同一个代码包中的多个init函数的执行顺序是不确定的
      2. 不同代码包间——先执行被导入代码包中的init函数,然后在执行导入它的那个代码包的init函数 
      3. 所有涉及到的代码包—— 在go函数的main函数执行前执行 ,不管init在什么位置,每一个init函数只会被执行一次
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

go学习笔记(2)——go环境安装及代码包说明 的相关文章

  • mac手册汉化 2019

    1 安装依赖 brew install automake brew install opencc 2 编译 wget https github com man pages zh manpages zh archive v1 6 3 3 ta
  • 守护进程&创建

    守护进程 守护进程也称为精灵进程 xff0c 是一种运行在后台的特殊进程 和其他后台进程所不同的是 xff0c 它始终独立其他会话 xff0c 自成会话组 xff0c 不受系统登录和注销的影响 xff0c 一般都是7 24小时在后台运行的
  • 智能指针剖析&模拟

    要学习智能指针之前需要先了解一下什么叫RAII xff1f 所谓RAII就是运行时初始化 xff0c 具体的实现就是定义一个类来封装运行资源的分配和释放工作 xff0c 在构造函数中进行资源的分配 xff0c 在析构函数中进行资源的回收工作
  • 代理服务器与NAT技术

    1 1 简介 1 1 1 名词解释 公有IP地址 xff1a 也叫全局地址 xff0c 是指合法的IP地址 xff0c 它是由NIC xff08 网络信息中心 xff09 或者ISP 网络服务提供商 分配的地址 xff0c 对外代表一个或多
  • 【网络】网络基础知识总结

    谈到网络 xff0c 首先就需要知道计算机网络中的两个参考模型 xff0c 即OSI参考模型 与TCP IP参考模型 OSI参考模型 OSI xff08 Open System Interconnect xff09 xff0c 即开放式系统
  • 【程序员面试宝典】数组相关面试题

    1 像素翻转 有一副由NxN矩阵表示的图像 xff0c 这里每个像素用一个int表示 xff0c 请编写一个算法 xff0c 在不占用额外内存空间的情况下 即不使用缓存矩阵 xff0c 将图像顺时针旋转90度 给定一个NxN的矩阵 xff0
  • 浅析TCP协议中的各种定时器

    TCP在建立连接之后可能会启动四个定时器 重传计时器 xff1a Retransmission Timer 坚持计时器 xff1a Persistent Timer 保活计时器 xff1a Keeplive Timer 时间等待计时器 xf
  • 【程序员面试宝典】字符串相关面试题

    1 确定字符互异 请实现一个算法 xff0c 确定一个字符串的所有字符是否全都不同给定一个string iniString xff0c 请返回一个bool值 True代表所有字符全都不同 xff0c False代表存在相同的字符 保证字符串
  • 【程序员面试宝典】链表相关面试题

    1 链表中的第k个节点 题目描述 xff1a 输入一个链表 xff0c 输出该链表中倒数第k个结点 struct ListNode span class hljs built in int span val struct ListNode
  • 【网络】网络端口号分类

    在开始之前有必要先说一下为什么要网络要对对端口号进行细分 xff0c 而像常见的端口号之间又是什么东西 xff0c 有什么作用 xff0c 为什么要学习端口号相关的知识 xff0c 带着这些疑问 xff0c 下面开始今天知识的学习 在我学习
  • TCP协议中的URG和PSH位

    相关背景知识 http blog csdn net double happiness article details 74025156 在探讨TCP协议中的URG和PSH控制位时 xff0c 我们先来简单的复习一下TCP协议 URG xff
  • 问答QA(一)综述

    声明 xff1a 本文是综合网上问答系统介绍 xff0c 做的总结 xff0c 如有侵权 xff0c 请联系处理 xff0c 谢谢 一 问答系统架构 1 1 问题分析模块 负责对用户的提问进行处理 xff1b 生成查询关键词 xff08 提
  • 【程序员面试宝典】栈和队列相关面试题

    1 集合栈 题目描述 xff1a 请实现一种数据结构SetOfStacks xff0c 由多个栈组成 xff0c 其中每个栈的大小为size xff0c 当前一个栈填满时 xff0c 新建一个栈 该数据结构应支持与普通栈相同的push和po
  • 【程序员面试宝典】栈的应用

    1 下一个较大元素 现在我们有一个int数组 xff0c 请你找出数组中每个元素的下一个比它大的元素 给定一个int数组A及数组的大小n xff0c 请返回一个int数组 xff0c 代表每个元素比他大的下一个元素 若不存在则为 1 保证数
  • time_wait与面试的暧昧

    背景知识 TCP三次握手与四次挥手 http blog csdn net double happiness article details 70160738 time wait是什么 xff1f 通过上面三次握手和四次挥手的学习 xff0c
  • 【通信方式五】socket编程之TCP通信

    1 网络字节序 网络字节序就是熟知的关于大小端的问题 xff0c 关于前面的大小端的判断方法 xff0c 以及代码实现再此就不在赘述 xff0c 下面只谈网络中的字节序问题 xff08 如何判定当前机器的大小端 xff1a http blo
  • 【通信方式六】socket编程之UDP通信

    相关博客 通信方式五 socket编程之TCP http blog csdn net double happiness article details 74938008 由于TCP协议是可靠的面向连接的协议 xff0c 因此在服务器端需要执
  • shell下的第一个编程(不一样的1到100累加)

    相信对于一个程序 猿 来说 xff0c 除了我们入门的 hello world 之外 xff0c 最简单的代码就是只有从1累加到100这样简单的程序吧 xff0c 没错这样的程序在现在来看或许根本不如我们的法眼 xff0c 那么问题来了 x
  • 【每日一题-1】有序链表合并与累加和问题

    基础题 合并两个有序链表 xff0c 合并以后的链表依旧有序 思路 xff1a xff08 1 xff09 特殊情况处理 xff1a 若两个链表都为则返回空 xff0c 若其中一个链表为空返回另外一个链表的头结点 xff1b xff08 2
  • 【每日一题-2】链表基础面试题

    1 查找链表的倒数第k个节点 span style font family none font size 12px ListNode FindKthToTail ListNode pListHead unsigned int k if pL

随机推荐