0%

在学习 go 语言项目时,遇到这样一个问题:

通过struct结构体作为一个model,数据绑定等操作都是返回一个结构体指针,那么返回一个结构体变量,或者返回一个结构体指针,他们的区别是什么?

因为二者都可以让我们生成我们所需要的结构体,那为什么还要去使用返回结构体指针呢

对于此疑问,我做了如下实验

阅读全文 »

golang中make和new的区别

共同点:都是给变量分配内存;
不同点:

  1. 返回类型不同: new创建返回指针,指向分配类型的指针,分配的空间置为零,该类型的零值;make返回变量本身,分配空间后会进行初始;

  2. 分配类型:new可以为任意类型进行分配;make只能为slice,map,chan引用类型数据进行分配空间。

数组和切片的区别

共同点:都是通过下标访问,并且都有容量长度;

不同点:

  1. 定义方式不同:数组必须指定大小,定义后不能增加容量和长度;切片不用,定义后切片数据增多,会自动扩容(当原切片长度小于1024时,新切片的容量会直接翻倍;超过1024会反复地增加25%,直到新容量超过所需要的容量);
  2. 类型不同:数值为值类型;切片为引用类型,每个切片底层引用一个数组,所以切片扩容后,便会指向一个新的底层数组,内存地址跟着改变。
阅读全文 »

计算机基础

1. 操作系统

  • 了解进程、线程、协程的区别
  • 了解进程间常用的通信方式
    1. 管道
    2. 命名管道(FIFO)
    3. 消息队列
    4. 信号量
    5. 共享内存
    6. 套接字(Socket)
  • 了解5种网络IO模型
    1. 阻塞 IO(blocking IO)
    2. 非阻塞 IO(non-blocking IO)
    3. 多路复用 IO(IO multiplexing)
    4. 异步 IO(Asynchronous I/O)
    5. 信号驱动 IO(signal driven I/O, SIGIO)
阅读全文 »