-
.NET Framework是啥
所属栏目:[语言] 日期:2023-06-02 热度:2859
.NET Framework 是一个由微软设计和开发的软件框架,主要用来开发可以在 Windows 平台上运行的应用程序,例如 Web、Windows 和移动端的各种应用程序,框架中提供了包括网络、安全性、内存管理和类型安全在内的各种服[详细]
-
Go语言JSON文件的读写运作
所属栏目:[语言] 日期:2023-06-01 热度:519
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集[详细]
-
Go语言inject库 依赖置入
所属栏目:[语言] 日期:2023-06-01 热度:162
在介绍 inject 之前我们先来简单介绍一下“依赖注入”和“控制反转”这两个概念。正常情况下,对函数或方法的调用是我们的主动直接行为,在调用某个函数之前我们需要清楚地知道被调函数的名称是[详细]
-
Go语言通过反射使用函数
所属栏目:[语言] 日期:2023-06-01 热度:8580
如果反射值对象(reflect.Value)中值的类型为函数时,可以通过 reflect.Value 调用该函数。使用反射调用函数时,需要将参数使用反射值对象的切片 []reflect.Value 构造后传入 Call() 方法中,调用完成时,函数的返回[详细]
-
Go语言通过类型信息创建示例
所属栏目:[语言] 日期:2023-06-01 热度:8141
当已知 reflect.Type 时,可以动态地创建这个类型的实例,实例的类型为指针。例如 reflect.Type 的类型为 int 时,创建 int 的指针,即*int,代码如下:package mainimport ("fmt""reflect")func main() {var a int/[详细]
-
Go语言通过反射更改变量的值
所属栏目:[语言] 日期:2023-06-01 热度:8495
Go语言中类似 x、x.f[1] 和 *p 形式的表达式都可以表示变量,但是其它如 x + 1 和 f(2) 则不是变量。一个变量就是一个可寻址的内存空间,里面存储了一个值,并且存储的值可以通过内存地址来更新。对于 reflect.Value[详细]
-
Go语言IsNil()和IsValid()——评判反射值的空和有效性
所属栏目:[语言] 日期:2023-06-01 热度:6574
反射值对象(reflect.Value)提供一系列方法进行零值和空判定。反射值对象的零值和有效性判断方法方 法说 明IsNil() bool返回值是否为 nil。如果值类型不是通道(channel)、函数、接口、map、指针或 切片时发生 pan[详细]
-
Go语言通过反射探访结构体成员的值
所属栏目:[语言] 日期:2023-06-01 热度:2315
反射值对象(reflect.Value)提供对结构体访问的方法,通过这些方法可以完成对结构体任意值的访问。反射访问结构体成员值:package mainimport ("fmt""reflect")// 定义结构体type dummy struct {a intb string// 嵌[详细]
-
Go语言reflect.ValueOf()和reflect.Value 经过反射获取值信息
所属栏目:[语言] 日期:2023-06-01 热度:4858
当我们将一个接口值传递给一个 reflect.ValueOf 函数调用时,此调用返回的是代表着此接口值的动态值的一个 reflect.Value 值。我们必须通过间接的途径获得一个代表一个接口值的 reflect.Value 值。reflect.Value 类型[详细]
-
Go语言结构体标志 Struct Tag
所属栏目:[语言] 日期:2023-06-01 热度:7770
通过 reflect.Type 获取结构体成员信息 reflect.StructField 结构中的 Tag 被称为结构体标签(Struct Tag)。结构体标签是对结构体字段的额外信息标签。JSON、BSON 等格式进行序列化及对象关系映射(Object Relation[详细]
-
Go语言通过反射获取结构体的成员类别
所属栏目:[语言] 日期:2023-06-01 热度:6723
任意值通过 reflect.TypeOf() 获得反射对象信息后,如果它的类型是结构体,可以通过反射值对象(reflect.Type)的 NumField() 和 Field() 方法获得结构体成员的详细信息。reflect.Type 的 Field() 方法返回 StructFi[详细]
-
Go语言reflect.Elem()——通过反射获取指针指向的元素类别
所属栏目:[语言] 日期:2023-05-31 热度:6040
Go语言程序中对指针获取反射对象时,可以通过 reflect.Elem() 方法获取这个指针指向的元素类型。这个获取过程被称为取元素,等效于对指针类型变量做了一个*操作,代码如下:package mainimport ("fmt""reflect")func[详细]
-
Go语言reflect.TypeOf()和reflect.Type 经过反射获取类型信息
所属栏目:[语言] 日期:2023-05-31 热度:1454
在 Go语言中通过调用 reflect.TypeOf 函数,我们可以从一个任何非接口类型的值创建一个 reflect.Type 值。reflect.Type 值表示着此非接口值的类型。通过此值,我们可以得到很多此非接口类型的信息。当然,我们也可以[详细]
-
Go语言反射规则分析
所属栏目:[语言] 日期:2023-05-31 热度:2553
反射是众多编程语言中的一个非常实用的功能,它是一种能够自描述、自控制的应用,Go语言也对反射提供了友好的支持。Go语言中使用反射可以在编译时不知道类型的情况下更新变量,在运行时查看值、调用方法以及直接对他[详细]
-
Go语言CSP 通信顺序进展简述
所属栏目:[语言] 日期:2023-05-31 热度:6932
Go实现了两种并发形式,第一种是大家普遍认知的多线程共享内存,其实就是 Java 或 C++ 等语言中的多线程开发;另外一种是Go语言特有的,也是Go语言推荐的 CSP(communicating sequential processes)并发模型。CSP 并[详细]
-
Go语言死锁 活锁和饥饿解说
所属栏目:[语言] 日期:2023-05-31 热度:2828
死锁是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进[详细]
-
goroutine和coroutine的差异
所属栏目:[语言] 日期:2023-05-31 热度:8021
C#、Lua、Python 语言都支持 coroutine 特性。coroutine 与 goroutine 在名字上类似,都可以将函数或者语句在独立的环境中运行,但是它们之间有两点不同:goroutine 可能发生并行执行;但 coroutine 始终顺序执行。g[详细]
-
并发和并行的差异
所属栏目:[语言] 日期:2023-05-31 热度:2983
在讲解并发概念时,总会涉及另外一个概念并行。下面让我们来了解并发和并行之间的区别。并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。并行(parallelism):把[详细]
-
Go语言GOMAXPROCS 调整并发的运作性能
所属栏目:[语言] 日期:2023-05-31 热度:5087
在 Go语言程序运行时(runtime)实现了一个小型的任务调度器。这套调度器的工作原理类似于操作系统调度线程,Go 程序调度器可以高效地将 CPU 资源分配给每一个任务。传统逻辑中,开发者需要维护线程池中线程与 CPU 核[详细]
-
Go语言竞争状态阐述
所属栏目:[语言] 日期:2023-05-31 热度:4246
有并发,就有资源竞争,如果两个或者多个 goroutine 在没有相互同步的情况下,访问某个共享的资源,比如同时对该资源进行读写时,就会处于相互竞争的状态,这就是并发中的资源竞争。并发本身并不复杂,但是因为有了资[详细]
-
Go语言并发简述 并发的优点
所属栏目:[语言] 日期:2023-05-31 热度:1437
有人把Go语言比作 21 世纪的C语言,第一是因为Go语言设计简单,第二则是因为 21 世纪最重要的就是并发程序设计,而 Go 从语言层面就支持并发。同时实现了自动垃圾回收机制。Go语言的并发机制运用起来非常简便,在启动[详细]
-
Go语言go mod包依赖管理工具运用详解
所属栏目:[语言] 日期:2023-05-30 热度:5187
最早的时候,Go语言所依赖的所有的第三方库都放在 GOPATH 这个目录下面,这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决?go module 是Go语言从 1.11 版本[详细]
-
Go语言flag包 命令行参数剖析
所属栏目:[语言] 日期:2023-05-30 热度:5916
在编写命令行程序(工具、server)时,我们有时需要对命令参数进行解析,各种编程语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。在Go语言中的 flag 包中,提供了命令行参数解析的功能。下面我们就来[详细]
-
Go语言os包用法阐述
所属栏目:[语言] 日期:2023-05-30 热度:5927
Go语言的 os 包中提供了操作系统函数的接口,是一个比较重要的包。顾名思义,os 包的作用主要是在服务器上进行系统的基本操作,如文件操作、目录操作、执行命令、信号与中断、进程、系统状态等等。os 包中的常用函数[详细]
-
Go语言time包 时间与日期
所属栏目:[语言] 日期:2023-05-30 热度:91
时间和日期是我们开发中经常会用到的,Go语言中的 time 包提供了时间显示和测量等所用的函数,本节我们就来介绍一下 time 包的基本用法。时间一般包含时间值和时区,可以从Go语言中 time 包的源码中看出:type Time [详细]
