interface{}

interface{} 接口、interface{} 类型很多人都会混淆。interface{} 类型是没有方法的接口。由于没有 implements 关键字,所以说所有的类型都至少实现了 0 个方法,所有类型都实现了空接口。这意味着,如果编写一个函数以 interface{} 值作为参数,那么你可以为该函数提供任何值。例如:

func DoSomething(v interface{}) {
// ...
}

第一种知道是什么类型

如果知道是什么类型的话,就可以直接转

// 假设 v 为 string或int64或float64
func DoSomething(v interface{}) {
string1 := v.(string)
int1 := v.(int64)
float1 := v.(float64)
}

第二种不知道是什么类型

这时候就可以使用类型断言,然后再转为具体类型

func interface2Type(i interface{}) {
switch i.(type) {
case string:
fmt.Println("string", i.(string))
break
case int:
fmt.Println("int", i.(int))
break
case float64:
fmt.Println("float64", i.(float64))
break
}
} func main() {
interface2Type("niuben")
interface2Type(1122)
interface2Type(11.22)
}

输出

string niuben
int 1122
float64 11.22

golang interface 转 string、int、float64的更多相关文章

  1. golang interface 转 string,int,float64

    func interface2String(inter interface{}) { switch inter.(type) { case string: fmt.Println("stri ...

  2. Golang Interface 解析

    转自 https://zhuanlan.zhihu.com/p/27652856 先看一段代码: 123456789101112 func (x interface{}) { if x == nil ...

  3. 转载 Golang []byte与string转换的一个误区

    Golang []byte与string转换的一个误区 https://www.oyohyee.com/post/Note/golang_byte_to_string/ 2019-08-10 23:4 ...

  4. QString, string, int, char* 之间相互转换

    这三种数据类型在实际运用中经常需要互相转换,那么这里小结下它们之间的转换方法: - Qstring & string Qt中封装的类十分强大,其成员函数数量之多比STD有过之而无不及,许多程序 ...

  5. string int 转换

    int转stringint n = 0;std::stringstream ss;std::string str;ss<<n;ss>>str;string转intstd::st ...

  6. Java Convert String & Int

    To convert a int to string: int num = 123; String str = String.valueOf(num); To convert a string to ...

  7. C++ char*,const char*,string,int 的相互转换

    C++ char*,const char*,string,int 的相互转换   1. string转const char* string s ="abc";const char* ...

  8. The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new View.OnClickListener(){}, String, int)

    package comxunfang.button; import android.support.v7.app.ActionBarActivity; import android.os.Bundle ...

  9. Java不同类型字符转换String/int/Float/////

    1.int & String int i=5678;String s=""; int->String: s=i+"";或 s=String.val ...

  10. string int 类型转换

    string  int  类型转换 (int) 此方法不适用于将string 转换为int 只能转换数值类型为int 而不能转换引用类型 不会四舍五入 直接去掉小数位 Conver.ToInt() 会 ...

随机推荐

  1. Qt开源作品27-鼠标定位十字线

    一.前言 上次有个群友在咨询这个问题,如何用Qt绘制一个鼠标定位的十字线,花了两分钟整了个,最没有含金量的一个demo,就是用drawline绘制了两条线,这个效果在经典的CAD软件中很常用,还有一些 ...

  2. 祝大家这周圣诞快乐!!本周进军多模态!😀From LLMs to MLLMs:😜Exploring the Landscape of Multimodal Jailbreaking

    从LLMs到MLLMs:探索多模态越狱攻击的前景 禁止盗用,侵权必究!!!欢迎大家积极举报 ①脆弱性代表:越狱攻击(恶意指令/训练&解码干预). ②最近的越狱攻击: 整体说:构建越来越复杂场景 ...

  3. 【OpenGL ES】GLSL基础语法

    1 前言 ​ 本文将介绍 GLSL 中数据类型.数组.结构体.宏.运算符.向量运算.矩阵运算.函数.流程控制.精度限定符.变量限定符(in.out.inout).函数参数限定符等内容,另外提供了一个 ...

  4. 金山毒霸提示这是高危入侵行为taskeng.exe

    如果安装了金山毒霸之后经常会弹窗提示:这是高位入侵行为.行为发起taskeng.exe.可疑进程regsvr32.EXE,可疑路径antivirus.php,如下入所示: 可以直接点击"阻止 ...

  5. streamlit使用技巧

    实现上传PDF并显示 ## 上传并预览(1M以内才可预览) def upload_Pre(): file = st.file_uploader("选择待上传的PDF文件", typ ...

  6. String、StringBuffer、StringBuilder三者的异同

    /*String.StringBuffer.StringBuilder三者的异同?String:不可变的字符序列:底层使用char[]存储StringBuffer:可变的字符序列:线程安全的,效率低: ...

  7. Exfiltrated pg walkthrough Easy

    80端口弱口令admin admin 发现cms 搜索exp 发现漏洞 https://www.exploit-db.com/exploits/49876 找到敏感数据库密码和用户 ╔════════ ...

  8. Windows中安装和配置Maven

    1.下载 下载地址:https://maven.apache.org/download.cgi 下载文件:https://dlcdn.apache.org/maven/maven-3/3.9.6/bi ...

  9. 快速 log2 取整算法 (O(1) 时间与空间复杂度)

    先上核心代码(文末附针对多种整数类型的代码): inline int log_2(int x) { int rst = 0; if (x & 0xffff'0000U) rst += 16, ...

  10. StarUML画类图

    1.Classes说明 [1]Class  类 [2]Interface 接口 [8]Generalization A与B的泛化关系,A继承B.继承非抽象类 [9]Interface Realizat ...