学习的时候看到这样一行代码

var _ Codec = (*GobCodec)(nil)

查了一下后,得到该语句的作用为:检查GobCodec这个结构体是否实现了Codec这个接口

空白标识符_代表变量名,这里不需要它,通过转换为(*T)(nil)来创建一个指向类型值的未初始​​化指针

package main

import "fmt"

type I interface {
ITest()
}
type I2 interface {
I2Test()
} type IStruct struct{} func (i *IStruct) I2Test() { } func main() {
/*
报错
var _ I = (*IStruct)(nil)
*/ var _ I2 = (*IStruct)(nil) //等价于 var istruct *IStruct = nil
var i I2
i = istruct
fmt.Println(i)
}

var _ I = (*T)(nil)的更多相关文章

  1. go标准库的学习-io

    参考https://studygolang.com/pkgdoc 导入方式: import "io" o包提供了对I/O原语的基本接口.本包的基本任务是包装这些原语已有的实现(如o ...

  2. union 类型(即sum types)在golang语言中的实现

    http://www.jerf.org/iri/post/2917 Sum Types in Go posted Jun 02, 2013 in Programming, Golang, Haskel ...

  3. 06 Frequently Asked Questions (FAQ) 常见问题解答 (常见问题)

    Frequently Asked Questions (FAQ) Origins 起源 What is the purpose of the project? What is the history ...

  4. Go Programming Blueprints 读书笔记(谈到了nsq/mgo处理数据持久化,可是业务逻辑不够复杂)

    Go Programming Blueprints http.Handle("/", &templateHandler{filename: "chat.html& ...

  5. 学习go的一些笔记

    反射 reflect type CfgSt struct{ Match *int64 `ini:"match"` Desc string `ini:"desc" ...

  6. Go - 代码生成工具

    分享两个常用的代码生成工具: gormgen handlergen gormgen 基于 MySQL 数据表结构进行生成 3 个文件: 生成表的 struct 结构体 生成表的 Markdown 文档 ...

  7. go 的方法集和接口断言

    Go 的方法集与接口断言 方法集 引子 首先来看一段代码: package main import "fmt" func main() { var v IpmHelloByValu ...

  8. 【Golang】Go 通过结构(struct) 实现接口(interface)

    一.通过结构(struct) 实现 接口(interface) 1.在了解iris框架的时候,经常看到有这样去写的使用一个空结构体作为接收器,来调用方法,有点好奇这样做有什么意义. 解释:在 Go 语 ...

  9. Goalng:基础复习一遍过

    Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 剖析 Hello world 新建文件 main.go 写入以下内容: package ma ...

  10. goalng nil interface浅析

    0.遇到一个问题 代码 func GetMap (i interface{})(map[string]interface{}){ if i == nil { //false ??? i = make( ...

随机推荐

  1. 不要用第三方日志包了Microsoft.Extensions.Logging功能就很强大

    在.NET中,Microsoft.Extensions.Logging是一个广泛使用的日志库,用于记录应用程序的日志信息.它提供了丰富的功能和灵活性,使开发人员能够轻松地记录各种类型的日志,并将其输出 ...

  2. [USACO2022OPEN S] Subset Equality S

    [USACO22OPEN] 题目描述 奶牛们正在尝试一种相互交换编码信息的新方法,她们在相关的字母中混入不相关的字母,使信息难以解码. 奶牛们传输两个字符串 \(s\) 和 \(t\),每个字符串的长 ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (164)-- 算法导论13.1 4题

    四.用go语言,假设将一棵红黑树的每一个红结点"吸收"到它的黑色父结点中,使得红结点的子结点变成黑色父结点的子结点(忽略关键字的变化).当一个黑结点的所有红色子结点都被吸收后,它可 ...

  4. 数字孪生与GIS结合,为智慧交通带来的改变

    在当代社会,交通问题已经成为城市发展中的一个重要挑战.交通拥堵.安全隐患.环境污染等问题给人们的出行带来了许多不便和困扰.然而,随着数字孪生技术与地理信息系统(GIS)的融合,我们迎来了智慧交通的新时 ...

  5. Docker、pre-commit 导致的 git commit 报错:找不到 python 3.8

    到这个问题的原因可能有很多,这里只是记录下针对我遇到这这跟题的原因及解决方法 问题描述 执行 git commit 命令,报错 /usr/bin/env: 'python3.8': No such f ...

  6. 文心一言 VS 讯飞星火 VS chatgpt (58)-- 算法导论6.4 2题

    文心一言 VS 讯飞星火 VS chatgpt (58)-- 算法导论6.4 2题 二.试分析在使用下列循环不变量时,HEAPSORT 的正确性:在算法的第 2~5行 for 循环每次迭代开始时,子数 ...

  7. flutter弹窗

    AlertDialog: 优点:Material风格的弹窗,具有灵活的布局和样式自定义能力.易于使用,并提供了标题.内容和操作按钮的选项. 缺点:对于复杂的自定义布局和样式可能不够灵活. Bottom ...

  8. JavaScript异步编程1——Promise的初步使用

    目录 1. 概述 2. 详论 3. 参考 1. 概述 Promise对象是ES6提出的的异步编程的规范.说到异步编程,就不得不说说同步和异步这两个概念. 从字面意思理解同步编程的话,似乎指的是两个任务 ...

  9. API安全技术

    自己在日常工作中会涉及到些安全的概念,但是没有成体系,因此最近研读了<API安全技术与实战>一书,在此做些文章记录. API安全是从安全的角度关注API领域的安全问题和这些问题的解决方案, ...

  10. 从标准到开发,解读基于MOF的应用模型管理

    摘要:为了打破技术与业务的壁垒,搭建技术与业务的桥梁,因此基于如下流程实现应用业务模型管理 ROMA ABM. 在数字经济时代,数据正在成为企业极其重要的战略性资产.在政府方面,数据第一次作为新型生产 ...