golang 基础知识3

Posted jay-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 基础知识3相关的知识,希望对你有一定的参考价值。

断言: 参考 https://studygolang.com/articles/3314

var.(T)类型断言失败时会返回T类型的“0值”,而不是变量原始值。 var是要判断的变量,T类型,例如:sss.(string),T是type最好用的是interface或者一个strcut

其中var为interface{}类型 T是要断言的类型。

简单的string可以不使用这个

1)直接断言使用

var a interface{}

a = "xxxx"

fmt.Println("Where are you,Jonny?", a.(string))

但是如果断言失败一般会导致panic的发生。所以为了防止panic的发生,我们需要在断言前进行一定的判断

value, ok := a.(string)     //value在正常值true/false, 如果没错误 ok是没有值的,如果有panic则ok是有值的

if value, ok := a.(string) ,ok {

  fmt.Println(value, ok)   //xxxx,true

}

if value, ok := a.(string) ,ok {

  fmt.Println(value, ok)   

} else {

    fmt.Println(value, ok)   //<nil>, false  如果ok为false则ok为false

}

 

以上是关于golang 基础知识3的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现简单的 Web 服务器

代码片段 - Golang 实现集合操作

json [Golang] golang #golang #snippets中有用的片段

片段是否执行基础数据的复制?

golang删除数组某个元素

java golang oop 2文章片段