0%

go-study

####go学习记录

import 下划线(如:import _ hello/imp)的作用:当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 import _ 引用该包。即使用【import _ 包路径】只是引用该包,仅仅是为了调用init()函数,所以无法通过包名来调用包中的其他函数。

1.new和make的区别?
相同点:
new和make都是用来开辟空间的
不同点:
new是初始化一个类型的指针,返回的是类型指针,而里面的值为默认初始值,只对值类型有效
make是针对slice切片,map字典,chan管道初始化,并且返回对应的初始值
并非返回指针,而是对应的类型有效值
2.数组和切片的区别
相同点:
都是一系列用来存放对应数据的集合
不同点:
基本:
数组不可改变,定义后只能修改,无法增删
切片可以进行后续操作改变
语法定义:
数组的语法为: var arr [10]int
切片的语法为: var arr []int
类型:
数组:值类型,进行函数传递值时,通常是值传递,拷贝一份后进行操作
切片:引用类型,函数操作时,针对传递指针进行操作
空间大小:
数组:数组大小为初始值时,默认的长度以及类型进行开辟空间
切片:切片大小默认为24。这是因为切片的结构体只存放三个3个变量
指针,长度,容量
切片可以进行增删值,当超出现有容量后,会在1024容量内进行翻倍,超出后则每次增加1/4