go语言基础总结

字符串

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不能跳过内部变量声明语句

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值