golang 实现interface{}转其他类型操作
golang中的string是可以转换为byte数组或者rune数组
但是其实byte对应的类型是uint8,而rune对应的数据类型就是int32
所以string可以转换为四种类型
//interface转其他类型————返回值是interface,直接赋值是无法转化的 //interface 转string var a interface{} var str5 string a = "3432423" str5 = a.(string) fmt.Println(str5) //interface 转int var m interface{} var m1 int m = 43 m1 = m.(int) fmt.Println(m1) //interface 转float64 var ff interface{} var ff1 float64 ff = 432.54 ff1 = ff.(float64) fmt.Println(ff1)
补充:golang interface 转 string,int,float64
看代码吧~
func interface2String(inter interface{}) { switch inter.(type) { case string: fmt.Println("string", inter.(string)) break case int: fmt.Println("int", inter.(int)) break case float64: fmt.Println("float64", inter.(float64)) break } } func main() { interface2String("jack") interface2String(1) interface2String(12.223) }
string jack int 1 float64 12.223
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
golang中struct和interface的基础使用教程
前言 本文主要给大家介绍了关于golang中struct和interface的相关内容,是属于golang的基本知识,下面话不多说了,来一起看看详细的介绍吧. struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套:go中的struct类型理解为类,可以定义方法,和函数定义有些许区别:struct类型是值类型. struct定义 type User struct { Name string Age int32 mess string } var user User
-
golang中interface接口的深度解析
一 接口介绍 如果说gorountine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道亮丽的风景,那么接口是Go语言整个类型系列的基石,让Go语言在基础编程哲学的探索上达到前所未有的高度.Go语言在编程哲学上是变革派,而不是改良派.这不是因为Go语言有gorountine和channel,而更重要的是因为Go语言的类型系统,更是因为Go语言的接口.Go语言的编程哲学因为有接口而趋于完美.C++,Java 使用"侵入式"接口,主要表现在实现
-
golang基础之Interface接口的使用
接口是一个或多个方法签名名的集合,定义方式如下 type Interface_Name interface { method_a() string method_b() int .... } 只要某个类型拥有该接口的所有方法签名,就算实现该接口,无需显示声明实现了那个接口,这称为structural Typing package main import "fmt" type USB interface { //定义一个接口:方法的集合 Name() string //Name方法,返回
-
golang语言如何将interface转为int, string,slice,struct等类型
在golang中,interface{}允许接纳任意值,int,string,struct,slice等,因此我可以很简单的将值传递到interface{},例如: package main import ( "fmt" ) type User struct{ Name string } func main() { any := User{ Name: "fidding", } test(any) any2 := "fidding" test(a
-
golang struct 实现 interface的方法
golang中,一般strcut包含 interface类型后,struct类型都需要实现 interface导出的接口,从而成为相应的 interface接口类. 实际上,struct包含interface之后,并不需要实现interface的接口,也能成为 interface接口类. 代码如下: type newEr interface { New() } type testInterface interface { newEr Done() <-chan struct{} } type k
-
golang 实现interface{}转其他类型操作
golang中的string是可以转换为byte数组或者rune数组 但是其实byte对应的类型是uint8,而rune对应的数据类型就是int32 所以string可以转换为四种类型 //interface转其他类型----返回值是interface,直接赋值是无法转化的 //interface 转string var a interface{} var str5 string a = "3432423" str5 = a.(string) fmt.Println(str5) //i
-
Golang中interface{}转为数组的操作
interface{} 转为普通类型 我们都知道在golang中interface{}可以代表任何类型,对于像int64.bool.string等这些简单类型,interface{}类型转为这些简单类型时,直接使用 p, ok := t.(bool) p, ok := t.(int64) 如果ok==true的话,就已经类型转换成功. 假设有这样一个场景,我们有一个函数有返回值,但是返回值的类型不定,所以我们的返回值类型只能以接口来代替了. 返回接口类型之后,我们就要对其类型进行判断然后进行类型
-
解决golang 反射interface{}做零值判断的一个重大坑
在对float零值判断时往往只需要和0做==即可,所以曾经int和float都用==0来做对比, 比如下方: in := 0. var tmp interface{} = float32(in) fmt.Println("float 0==0:", in == 0) fmt.Println("float -> interface{} -> float", tmp.(float32) == 0) switch v := tmp.(type) { case
-
Golang中Interface接口的三个特性
原文地址 第一次翻译文章,请各路人士多多指教! 类型和接口 因为映射建设在类型的基础之上,首先我们对类型进行全新的介绍.go是一个静态性语言,每个变量都有静态的类型,因此每个变量在编译阶段中有明确的变量类型,比如像:int.float32.MyType... 比如: type MyInt int var i int var j MyInt 变量i的类型为int,变量j的类型为MyInt,变量i.j具有确定的类型,虽然i.j的潜在类型是一样的,但是在没有转换的情况下他们之间不能相互赋值.在类型中有
-
一文带你了解Golang中interface的设计与实现
目录 前言 接口是什么 iface 和 eface 结构体 _type 是什么 itab 是什么 生成的 itab 是怎么被使用的 itab 关键方法的实现 根据 interfacetype 和 _type 初始化 itab 接口断言过程总览(类型转换的关键) panicdottypeI 与 panicdottypeE iface 和 eface 里面的 data 是怎么来的 convT* 方法 Java 里面的小整数享元模式 总结 在上一篇文章<go interface 基本用法>中,我们了
-
浅谈golang二进制bit位的常用操作
golang作为一热门的兼顾性能 效率的热门语言,相信很多人都知道,在编程语言排行榜上一直都是很亮眼,作为一门强类型语言,二进制位的操作肯定是避免不了的,数据的最小的单位也就是位,尤其是网络中封包.拆包,读取二进制文件等用的特别广泛, 所以学好golang二进制bit位的常用操作还是很必要的,而且很多运算尤其是乘法除法运算,CPU效率是很低的,这时候可以二进制操作代替,不多说了,上干货! package main import ( "fmt" "github.com/imro
-
golang 中string和int类型相互转换
总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: int, err := strconv.Atoi(string) string转成int64: int64, err := strconv.ParseInt(string, 10, 64) int转成string: string := strconv.Itoa(int) int64转成string: string := strconv.FormatInt(int64,10) 字符串到float32/floa
-
浅谈Golang 嵌套 interface 的赋值问题
大家还是直接看代码吧~ package main import ( "fmt" ) func main() { s := map[string]interface{}{ "code":0, "msg":"", "data":map[string]interface{}{ "src":"", }, } s["data"].(map[string]in
-
golang开发安装go-torch火焰图操作步骤
目录 安装 使用 另一种自定义显示方式 代码修改 使用 查看 安装 1. 安装go-torch go get github.com/uber/go-torch 2.安装FlameGraph cd $GOPATH && git clone https://github.com/brendangregg/FlameGraph.git export PATH=$PATH:$GOPATH/FlameGraph [这步一定要设置,生成火焰图时会用到] 3.安装graphviz (CentOS, R
随机推荐
- jQuery中:text选择器用法实例
- 每天一篇javascript学习小结(Boolean对象)
- apache在win2003下的安全设置方法
- asp.net页面SqlCacheDependency缓存实例
- 用javascript实现jquery的document.ready功能的实现代码
- 《JavaScript DOM 编程艺术》读书笔记之DOM基础
- 谈谈第三方App接入微信登录 解读
- 简单PHP上传图片、删除图片实现代码
- PHP用strstr()函数阻止垃圾评论(通过判断a标记)
- Python多线程和队列操作实例
- Python自动发邮件脚本
- JS简单实现数组去重的方法分析
- javascript下用for( in )语句 获得所有style 内容的脚本代码
- thinkPHP实现MemCache分布式缓存功能
- PHP和.net中des加解密的实现方法
- js控制input输入字符解析
- jquery复选框多选赋值给文本框的方法
- 试用google search的Ajax api
- java计算自幂数和水仙花数
- JVM 心得 OOM时的堆信息获取方法与分析