当前位置: 代码迷 >> 综合 >> go语言基础总结
  详细解决方案

go语言基础总结

热度:25   发布时间:2023-10-13 09:34:54.0

字符串

var a ="hello"

a[0]='b' ?

//字符串是常量,可以访问其字节单元,但是不能修改某个字节的值

字符串尾部不包含NULL字符

与C++区分

基于字符串创建的切片和原字符串指向相同的底层字符数组,同样不能修改

 

指针

结构体指针访问结构体字段仍然用.,go语言没有

‘->’

与C++区分

a:=12

b:=&a

*b++?

b++ ?

go语言不支持指针运算,

在C++中b++,是指内存地址的偏移

func sum(a,b int) *int{

sum:=a+b

return &sum

}

go语言允许函数返回局部变量的引用

go语言的“栈逃逸”机制

数组和切片

go语言数组 定长性 、值拷贝 (改变拷贝后数组的数值,不影响原数组)

go语言切片 可扩长 、(改变拷贝后切片的数值,改变原切片 )

a:=make(int, 2,4)

b:=a

b[0]=2 改变原切片a

a:=make(int, 2,4)

b:=make(int,2,4)

copy(b,a)

b[0]=2 不改变原切片a

map

type User struct{

name string

age int

}

ma:=make(map(int)User)

user:=User{

name: "cui",

age:12,

}

ma[1]=user

ma[1].age=13?

user.age=13

ma[1]=user??

不能直接修改map中value的某个元素的值

标签

goto L ?

v:=3

L:

goto不能跳过内部变量声明语句

 

  相关解决方案