Go语言学习 道法自然 文章目录Go语言学习前言一、反射机制1.1 反射是什么1.2 反射的作用1.2.1 在编写不定传参类型函数的时候,或传入类型过多时1.2.2 不确定调用哪个函数,需要根据某些条件来动态执行1.3 反射的实现1.3.1 反射三定律1.4 反射的实践1.4.1 通过反射修改内容1.4.2 通过反射修改内容总结 前言Go(又称Golang)是Google开发的一种静态强类
转载
2024-06-12 12:51:20
83阅读
Go语言内存分配机制Go语言有两种分配内存的机制new()和make(),我们简单分析一下两种机制的不同new函数new()函数可以给一个值类型的数据分配数据内存,调用成功后返回一个初始化的内存块指针,原型定义如下:func new(Type) * Type在调用new()函数时要注意,参数Type是一个类型而不是具体的数值,函数调用成功后返回该类型的内存指针,同时该类型被初始化为“0”值。 ne
转载
2023-08-18 18:20:29
73阅读
函数的定义包括以下部分:函数的声明参数返回值函数的特点:无返回值或多返回值无默认参数不支持重载,之后的版本支持一、函数声明一个完整的函数声明,包含以下部分:func关键字函数名参数列表返回值列表/无返回值函数体(大括号内的部分)函数从第一条语句开始执行,碰到return或者执行完最后一条语句,函数结束如果没有声明函数体,可能这个函数是由其他语言实现的, 比如汇编二、参数定义的是形参,调用传的是实参
转载
2023-08-18 20:06:02
104阅读
# Go语言中的Map常量定义
Go语言是一种现代的编程语言,以其简洁的语法、高效的执行速度和良好的并发支持而受到广泛欢迎。其中,Map是一种非常重要的数据结构,用于存储键值对。在Go语言中,虽然我们可以方便地使用Map,但常量Map的定义与使用则相对比较复杂。本文将深入探讨Go语言中Map常量的定义,包含代码示例、序列图和类图示。
## 什么是Map?
在Go语言中,Map是一种无序的键值
变量(Variable)的功能是存储用户的数据。不同的逻辑有不同的对象类型,也就有不同的变量类型。经过半个多世纪的发展,编程语言已经形成一套固定的类型,这些类型在不同的编程语言中基本是相通的。常见变量的数据类型有:整型、浮点型、布尔型、结构体等。Go 语言作为C语言家族的新派代表,在C语言的定义方法和类型上做了优化和调整,更加灵活易学。
Go 语言的每一个变量都拥有自己的类型,必须经过声明才能开始
转载
2023-07-12 14:17:46
122阅读
go 语言常量Go 语言的常量是一种在源码编译期间被创建的语法元素。这是在说这个元素的值可以像变量那样被初始化,但它的初始化表达式必须是在编译期间可以求出值来的。而且,Go 常量一旦声明并被初始化后,它的值在整个程序的生命周期内便保持不变。这样,我们在并发设计时就不用考虑常量访问的同步,并且被创建并初始化后的常量还可以作为其他常量的初始表达式的一部分。go 常量的生命使用的关键词 const 生命
转载
2023-05-19 19:37:36
186阅读
python支持序列类型的数据进行切片,这种方式非常的便捷。 go语言中的数据容器只有数组,但是由于go有点底层,没有办法实现数组的切片,于是添加了一种新的数据类型,叫做切片slice,用于解决数组切片的问题。 简述go语言的切片,实际
转载
2023-08-13 11:05:34
119阅读
接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。接口本章学习目标了解为什么需要接口以及接口的特点掌握接口的声明和使用掌握接口值的概念掌握空接口的特点及其使用场景在Go语言中接口(interface)是一种类型,一种抽象的类型。相较于之前章节中讲到的那些具体类型(字符串、切片、结构体等)更注重“我是谁”,接口类型更注重“我能做什么”的问题。接口类型
转载
2024-01-21 01:22:21
94阅读
在Go语言中,切片(Slice)是一种数据结构,它是对数组一个连续片段的引用,这个数组称为切片的底层数组。切片和数组的关系是非常紧密的。在Go语言中,数组是一个固定长度的序列,而切片则是一个可变长度的序列。切片是建立在数组之上的,它提供了动态数组的功能,可以根据需要动态地增加或缩小切片的长度。基本使用切片(Slice)是Go语言中非常重要的数据结构之一,它常用于对数组进行操作,提供了方便的动态扩容
转载
2023-08-21 11:10:56
52阅读
Go语言函数、数组、切片 Go语言中函数,数组这些都是派生类型,也可以说是复杂类型,能够处理更加复杂的数据。一、函数函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传
转载
2023-08-21 10:12:22
149阅读
在一些介绍 sync 包相关的文章中,我们应该也发现了,其中有不少地方使用了原子操作。 比如 sync.WaitGroup、sync.Map 再到 sync.Pool,这些结构体的实现中都有原子操作的身影。 原子操作在并发编程中是一种非常重要的操作,它可以保证并发安全,而且效率也很高。 本文将会深入探讨一下 go 中原子操作的原理、使用场景、用法等内容。什么是原子操作?原子操作是变量级别的互斥锁。
转载
2024-01-10 12:52:30
99阅读
1. 什么是原子操作 我们已经知道,原子操作即是进行过程中不能被中断的操作。也就是说,针对某个值的原子操作在被进行的过程当中,CPU绝不会再去进行其它的针对该值的操作。无论这些其它的操作是否为原子操作都会是这样。为了实现这样的严谨性,原子操作仅会由一个独立的CPU指令代表和完成。只有这样才能够在并发环境下保证原子操作的绝对安全。Go语言提供的原子操作都是非侵入式的。它们由标准库代码包
转载
2023-11-21 00:17:28
103阅读
最新Go语言急速入门视频教程(七米出品)——接口_哔哩哔哩_bilibili接口是一种类型,一种抽象的类型。接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。接口本章学习目标了解为什么需要接口以及接口的特点掌握接口的声明和使用掌握接口值的概念掌握空接口的特点及其使用场景在Go语言中接口(interface)是一种类型,一种抽象的类型。相较于之前章节
转载
2024-01-13 23:20:32
102阅读
切片诞生的背景数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。 例如:func arraySum(x [3]int) int{
sum := 0
for _, v := range x{
sum = sum + v
}
return sum
}
//这个求和函数只能接受[3]int类型,其他的都不支持。 
转载
2023-07-06 17:04:26
229阅读
go 数据结构map要理解 map , 先要理解哈希表哈希是一类算法(映射算法,有很多种),类似一元一次方程那种,比如取余。而哈希表的结构一种实现方式是一种存储链表的数组。首先他提供哈希函数创建数组(比如哈希算法是对7取余,则创建一个长度为7的存储链表的数组)。当有数据需要存储的时候,先通过哈希函数确定应该存储到哪个数组下面。但是数组的长度是有限的,而可能存储进来的数据是无限的, 那肯定就会出现不
转载
2023-10-27 08:02:19
282阅读
# Go语言中定义一个JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将数据从服务器发送到Web页面。Go语言提供了简单而强大的标准库来处理JSON数据。
本文将介绍如何在Go语言中定义一个JSON对象,并使用代码示例说明如何进行JSON的编码和解码。
## 什么是JSON?
JSON是一种基于键值对的数据格式,它由一对花括号包裹
原创
2023-07-17 20:00:05
253阅读
1.Go 标记 go程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下Go语句由6个标记组成: 2. 6个标记是(每行一个):2.行分隔符在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号;结尾,因为这些工作都将由 Go 编译器自动完成,如果你打算将多
转载
2023-07-11 23:27:07
223阅读
在目前接触的几种语言中条件语句都是必不可少的。很难想象没有条件语句要怎么写程序。1.if语句Go语言的条件语句和C++的很像,使用关键词if。 其格式如下:if 表达式为true { 执行语句}和C++的区别是条件表达式不需要用括号括起来。举例:条件表达式为a > 5,如果该表达式的结果为true时,执行后花括号内的语句。 2. if
转载
2023-05-24 10:40:17
0阅读
# Go语言中的Context
## 介绍
Go语言中的Context(上下文)是一个非常重要的概念,它用于管理在一个Goroutine之间的请求范围数据的传递、取消信号和超时控制。在并发编程中,使用Context可以有效地控制Goroutine的生命周期,并且可以提供更好的错误处理和资源管理。
## 背景
在并发编程中,一个常见的问题是如何在多个Goroutine之间传递请求范围的数据,
原创
2023-09-06 06:18:17
93阅读
Go语言的ORM(对象关系映射)库为开发者提供了更加便捷的数据库操作方式,能够将数据表与Go对象轻松映射。本文将全面探讨如何解决“Go语言中ORM”相关问题,涵盖环境配置、编译过程、参数调优、定制开发、性能对比以及安全加固等多个方面的内容。
## 环境配置
首先,为了使用ORM,我们需要配置好开发环境。以下是环境配置的主要步骤和相关代码。
```mermaid
flowchart TD