Go语言特性
目录
Go语言有垃圾回收、天然并发、channel和支持多值返回这四个独特的特性。
1.1 垃圾回收
在垃圾回收上,Go内存可自动释放,无需开发人员管理内存,new()分配的内存会自动释放。
如在链表的操作中,我们删除链表中的某个节点时,无需像C++需要用delete()删除,Go会自动释放不会产生内存泄漏。如删除student链表里的stu6节点,代码如下:
由下面代码可见,当删除链表中的"stu6"节点时,我们之间另此节点的前一个节点的 .next指向此节点的下一个节点地址即可,无需调用delete()再删除这个内存。
func delNode(p *Student) {
var prev *Student = p //prev为待删除节点的前一个节点
for p != nil { //遍历链表,找到节点
if p.Name == "stu6" {
prev.next = p.next //令待删除节点的next直接指向待删除节点的下一个节点
p.next = nil
break
}
prev = p