Go 使用过程中的错误

时间:2021-07-13 22:53:13   收藏:0   阅读:16

切片和结构体的声明

## map代码 1
func main() {
	m := map[string]int{
		"小刘": 12,
		"小王": 15,
	}
	for k, v := range m {
		fmt.Println(k, v)
	}
}
## 结构体代码 2
  stus := []student{
        {name: "pprof.cn", age: 18},
        {name: "测试", age: 23},
        {name: "博客", age: 28},
    }

go的 ...用法

Go 语言里的 ... 是有两种用法,一个是在字符串前边,一个是在字符串后边。

func test1(args ...string) { //可以接受任意个string参数
    for _, v:= range args{
        fmt.Println(v)
    }
}

func main(){
var strss= []string{
        "qwr",
        "234",
        "yui",
        "cvbc",
    }
    test1(strss...) //切片被打散传入
}

结构体

结构体的声明是要使用键值对

func newAGraph(n int) *AGraph {
	adjList := make([]VNode, n)
	return &AGraph{
		n:       n,       // 结构体是使用键值对的方式来声明的
		e:       0,       //边数为0
		adjList: adjList, // 链表
	}
}

匿名结构体的声明,是在方法内部声明,直接把 type 更改成 var

func main() {
    var user struct{Name string; Age int}
    user.Name = "pprof.cn"
    user.Age = 18
    fmt.Printf("%#v\n", user)
}

当结构体内的东西需要修改的时候,或者结构体内的东西比较大的时候,使用指针类型的结构体

结构体使用 new 声明。

类型转换

显示类型转换

这种类型转换主要在切换同一基础类型不同精度范围时使用,比如我们要将 int 型转为 int64 类型时。类型被转换后是否会损失精度的问题,如果损失了精度是否会影响接下来的业务流程。

	a := 1.52
	b:=int(a)

断言

断言,顾名思义就是果断的去猜测一个未知的事物。其断言操作就是用来判断 interface{} 的类型。

	var f interface{} = 25
	c := f.(int)

参考文献

https://zhuanlan.zhihu.com/p/30453711

原文:https://www.cnblogs.com/rush-peng/p/15008124.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!