golang获取系统变量,golang获取变量名

本文目录一览:

怎么设置golang的环境变量 linux

Linux下安装Go开发环境操作步骤 第一步:登陆linux 第二步:用命令yum install mercurial安装 mercurial包 第三步:用命令yum install git安装git包 第四步:用命令yum install gcc安装gcc

golang变量(二)——map和slice详解

衍生类型,interface{} , map, [] ,struct等

map类似于java的hashmap,python的dict,php的hash array。

常规的for循环,可以用for k,v :=range m {}. 但在下面清空有一个坑注意:

著名的map[string]*struct 副本问题

结果:

Go 中不存在引用传递,所有的参数传递都是值传递,而map是等同于指针类型的,所以在把map变量传递给函数时,函数对map的修改,也会实质改变map的值。

slice类似于其他语言的数组(list,array),slice初始化和map一样,这里不在重复

除了Pointer数组外,len表示使用长度,cap是总容量,make([]int, len, cap)可以预申请 比较大的容量,这样可以减少容量拓展的消耗,前提是要用到。

cap是计算切片容量,len是计算变量长度的,两者不一样。具体例子如下:

结果:

分析:cap是计算当前slice已分配的容量大小,采用的是预分配的伙伴算法(当容量满时,拓展分配一倍的容量)。

append是slice非常常用的函数,用于添加数据到slice中,但如果使用不好,会有下面的问题:

预期是[1 2 3 4 5 6 7 8 9 10], [1 2 3 4 5 6 7 8 9 10 11 12],但实际结果是:

注意slice是值传递,修改一下:

输出如下:

== 只能用于判断常规数据类型,无法使用用于slice和map判断,用于判断map和slice可以使用reflect.DeepEqual,这个函数用了递归来判断每层的k,v是否一致。

当然还有其他方式,比如转换成json,但小心有一些异常的bug,比如html编码,具体这个json问题,待后面在分析。

Golang 公共变量包——expvar

expvar 包是 Golang 官方提供的公共变量包,它可以辅助调试全局变量。支持一些常见的类型: float64 、 int64 、 Map 、 String 。如果我们的程序要用到上面提的四种类型(其中,Map 类型要求 Key 是字符串)。可以考虑使用这个包。

这些基础的功能就不多说了,大家可以直接看官方的 文档 。

看源码的时候发现一个非常有意思的调试接口, /debug/vars 会把所有注册的变量打印到接口里面。这个接口很有情怀。

感觉这个包还是针对简单变量,比如整形、字符串这种比较好用。

看到就写了,并没有什么沉淀,写得挺乱的。这个包很简单,但是里面还是有些可以借鉴的编码和设计。新版本的 Golang 已经能解析整形为 Key 的哈希表了,这个包啥时候能跟上支持一下?

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/297598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相关推荐

  • int类型变量的细节与注意事项

    本文将从 int 类型变量的定义、声明、初始化、范围、运算和类型转换等方面,对 int 类型变量进行详细阐述和讲解,帮助读者更好地掌握和应用 int 变量。 一、定义与声明 int…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 如何在树莓派上安装Windows 7系统?

    随着树莓派的普及,许多用户想在树莓派上安装Windows 7操作系统。 一、准备工作 在开始之前,需要准备以下材料: 1.树莓派4B一台; 2.一张8GB以上的SD卡; 3.下载并…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • 使用Golang调用Python

    在现代软件开发中,多种编程语言的协作是相当普遍的。其中一种使用场景是Golang调用Python,这使得在使用Python库的同时,可以利用Golang的高性能和强大并发能力。这篇…

    编程 2025-04-29
  • Python input参数变量用法介绍

    本文将从多个方面对Python input括号里参数变量进行阐述与详解,并提供相应的代码示例。 一、基本介绍 Python input()函数用于获取用户输入。当程序运行到inpu…

    编程 2025-04-29
  • Python匿名变量的使用方法

    Python中的匿名变量是指使用“_”来代替变量名的特殊变量。这篇文章将从多个方面介绍匿名变量的使用方法。 一、作为占位符 匿名变量通常用作占位符,用于代替一个不需要使用的变量。例…

    编程 2025-04-29
  • Python变量在内存中的存储

    该文章将从多个方面对Python变量在内存中的存储进行详细阐述,包括变量的声明和赋值、变量的引用和指向、内存地址的变化、内存管理机制等。 一、声明和赋值 在Python中,变量声明…

    编程 2025-04-29
  • 分销系统开发搭建

    本文主要介绍如何搭建一套完整的分销系统,从需求分析、技术选型、开发、部署等方面进行说明。 一、需求分析 在进行分销系统的开发之前,我们首先需要对系统进行需求分析。一般来说,分销系统…

    编程 2025-04-29
  • 使用Golang创建黑色背景图片的方法

    本文将从多个方面介绍使用Golang创建黑色背景图片的方法。 一、安装必要的代码库和工具 在开始创建黑色背景图片之前,我们需要先安装必要的代码库和工具: go get -u git…

    编程 2025-04-29

发表回复

登录后才能评论