golang interface 类型变量当作某个具体类型使用
比如,我们定义了一个 struct
type person struct {Name string `json:"name"`Age int `json:"age"` }
然后有一个函数为了通用性,函数返回值类型为 interface,但是某种情况我们知道这个函数是返回 person 类型的,我们就可以
person.(person).Name
来调用 person 类型里面的东西,因为 interface 类型直接调用会报错。
参考:Type_assertions
官网一个例子:
var x interface{} = 7 // x has dynamic type int and value 7 i := x.(int) // i has type int and value 7type I interface { m() }func f(y I) {s := y.(string) // illegal: string does not implement I (missing method m)r := y.(io.Reader) // r has type io.Reader and the dynamic type of y must implement both I and io.Reader… }
转载于:https://www.cnblogs.com/eleven24/p/9030976.html
golang interface 类型变量当作某个具体类型使用相关推荐
- java实现鸭子类型,Golang的interface及duck typing鸭子类型
Golang的interface及duck typing鸭子类型 "当看到一只鸟走起来像鸭子.游泳起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被称为鸭子." 意思就是: 一个东西究 ...
- Golang 为什么不能直接将任意类型数组赋值给 []interface{}完成泛型操作
想用 []interface{} 类型来接受一个任意类型的数组,从而进行泛型操作时,发现直接赋值会发生错误,导致 panic var dataSlice []int = foo() var inter ...
- Golang interface 接口详细原理和使用技巧
文章目录 Golang interface 接口详细原理和使用技巧 一.Go interface 介绍 interface 在 Go 中的重要性说明 interface 的特性 interface 接 ...
- 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量
非零基础自学Golang 文章目录 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量 3.1.1 声明变量 3.1.2 初始化变量 3.1.3 变量值交换 3.1.4 匿名变量 ...
- golang interface 转 int string slice struct 类型
在golang中,interface{}允许接纳任意值,int, string, struct,slice等,因此我可以很简单的将值传递到interface{} package main import ...
- golang interface 类型转换_Golang面试题41道
Golang面试题41道 大家好,这一期呢,我们来说一下golang的面试题. 第1题什么是golang? go是一个开源的编程语言,由谷歌开发的.这门语言是设计用来做系统级的编程的. 第2题为什么要 ...
- golang interface to string_Golang 反射
原文作者:OhBonsai 来源:简书 基本了解 在Go语言中,大多数时候值/类型/函数非常直接,要的话,定义一个.你想要个Struct 1type Foo struct {2 A int 3 B s ...
- golang interface 转 string,int,float64
inter 是interface类型,转化为string类型是: str := inter.(string) 转为其他类型也类似 testInt := inter.(int) testFloat := ...
- golang interface 类型转换_无符号Golang程序逆向方法解析
在去年的inctf2018中,出现了一道Go语言编写的进程通信逆向题,无论是从题目整体设计还是解题思路上来说都独树一帜,自己在解题过程中遇到了很多问题,但我这不打算做过多探讨,网上也有大佬的解题过程, ...
最新文章
- linux cpu 使用
- 出口印度海运注意事项
- es6 --- 模块
- OpenGL程序运行提示“glut32.dll丢失问题”
- mysql会对同时读取加锁吗_程序员经典面试题,MySQL并发读写的时候,都是需要加锁的么?...
- 小米宣布将停止MIUI全球Beta测试计划
- 嘉峪关计算机网络优化,嘉峪关广播电视大学计算机网络技术专业_甘肃报名_网络教育计算机网络技术专业教学计划_中国教育在线...
- C语言学习笔记---001C语言的介绍,编译过程原理,工具等
- 20155230 2016-2017-2《Java程序设计》课程总结
- python多元回归因子选取_Python中的多元回归(带因子选择)
- 为ASP.NET AJAX 1.0 Beta补充trace和dump功能
- 传染病模型中作图与计算(matlab,数学模型)
- 阿里云ace考试有什么用?想要通过需要掌握哪些方面知识?
- Python基础 [...,]三点切片
- CAD输出为PDF至A4大小
- python名片管理系统_用python实现名片管理系统
- 透明导航 html,导航栏(Nav) 全透明效果的一种另类实现
- [Trans 系列之一]TransE算法(Translating Embedding)
- 权限管理实现的两种方式(详解)
- VS打开后界面找不到win32或者x64的选项怎么办?
热门文章
- 彩色星球科技冠名著名钢琴艺术家吴牧野世界巡演《肖邦圆舞曲全集》长沙站演出...
- ui设计师职业规划怎么写_职业生涯规划报告---ui设计师.doc
- 听声音做钥匙?!慢放开锁音轨,黑客就能破解常用门锁,从33万种密钥中锁定3种
- heartbeat心跳检测和裂脑
- python 乘法口诀表
- python中not、and和or的简介以及优先级说明
- Matlab绘制各种小波函数及尺度函数图
- 在前互联网时代,宜家就有这些“互联网思维”
- 中国信息化系统集成行业协会:企业信息化系统集成
- AC最佳防守——一些头疼的错误