Go语言的interface注意事项: interface本身是指向“数据类型”的指针,不可以使用指针指向接口
在 Go 中,接口本身是一种数据类型,但它的设计方式与其他类型(如结构体)有所不同。以下是关于接口和指向接口的指针的详细解释:1. 接口的定义接口是一个抽象类型,它定义了一组方法,但并不具体实现...
Goland定时任务方案
如果你的运维 Agent 需要在 Linux 和 Windows 环境中都能运行,并且支持定时任务功能,选择一个跨平台的方案会是一个明智的选择。以下是几个适合的方案,考虑到跨平台兼容性和易于实现...
grpc流的使用方法和注意事项
我们将分别实现客户端流式、服务端流式和双向流式模式。步骤 1: 创建 Protobuf 文件首先确保你已经有了如下的 Protobuf 文件 hello_stream.proto:syntax ...
TLS握手过程详解
下面是完整的 TLS 认证过程 和 每个阶段是否加密 的详细解释:TLS 握手过程(Handshake)TLS 握手的主要目标是确保客户端和服务器建立一个安全的连接。握手过程包括密钥交换、身份验...
openssl制作证书过程
完整证书生成流程1. 准备 OpenSSL 配置文件 (openssl.conf)首先,创建一个 openssl.conf 配置文件,确保它包含 SANs(Subject Alternative...
Go语言执行本地命令
在 Go 语言中,exec 是用来执行外部命令的包,位于 os/exec 包中。这个包提供了用于执行外部命令的函数,可以让 Go 程序启动新进程来运行外部命令,并与这些进程进行交互(比如获取命令...
Go语言中的raw string的使用方式: 反引号
在 Go 语言中,反引号(`)有两种常见的用途:字符串字面量(Raw String Literal)包的导入路径(Go Modules)下面我分别详细解释这两种用途。1. 字符串字面量(Raw ...
Go语言类型判断:断言
Go语言的断言(Assertion)主要体现在两种方面:类型断言和接口断言。它们是用于从一个接口类型中提取具体类型的机制。1. 类型断言(Type Assertion)类型断言用于将接口类型的变...
在Go语言中需要手动申请内存的变量类型
在Go语言中,以下几种类型的变量通常需要手动申请内存(同时这些变量在函数调用传参时都是指针传递):1. 切片(slice): 切片本身是一个引用类型,它只是一个指向底层数组的指针。如果你想创建一...