15、了解空指针吗?
- 当一个指针被定义后没有分配到任何变量时 , 它的值为 nil 。
- nil 指针也称为空指针 。
- nil在概念上和其它语言的null、None、nil、NULL一样 , 都指代零值或空值 。
- Go中是不提供Set类型的 , Set是一个集合 , 其本质就是一个List , 只是List里的元素不能重复 。
- Go提供了map类型 , 可是咱们知道 , map类型的key是不能重复的 , 所以 , 咱们能够利用这一点 , 来实现一个set
- 构造一个Set的方法
//set类型
type Set struct {
m map[int
Empty
为一个结构体类型 , 内部一个成员为一个map , 这也是主要咱们存储值的容器函数产生set的工厂性能
//返回一19et
func SetFactory() *Set{
return &Set{
m:map[int
Empty{#### 。 所谓并发编程是指在一台处理器上“同时”处理多个任务 。
17、一般怎么比较两个结构体 , 怎么判断他们是否相等?
一般没有效率太高的方法:
- if判断比较:使用if一个个比较两个结构体中元素的值:if(p1->age==p2->age) , 如果有一个元素不等 , 即是两个实例不相等 。
- 指针直接比较:如果保存的是同一个实例地址 , 则(p1==p2)为真 。
- make 只用于 chan , map , slice 的初始化;
- new 用于给类型分配内存空间 , 并且置零;
- make 返回类型本身 , new 返回指向类型的指针 。
- 所谓并发编程是指在一台处理器上“同时”处理多个任务 。
- 宏观的并发是指在一段时间内 , 有多个程序在同时运行 。
- 并发在微观上 , 是指在同一时刻只能有一条指令执行 , 但多个程序指令被快速的轮换执行 , 使得在宏观上具有多个进程同时执行的效果 , 但在微观上并不是同时执行的 , 只是把时间分成若干段 , 使多个程序快速交替的执行 。
golang中的分布式锁可使用etcd进行实现 , 实现原理如下:
- 在ectd系统里创建一个key
- 如果创建失败 , key存在 , 则监听该key的变化事件 , 直到该key被删除 , 回到1
- 如果创建成功 , 则认为我获得了锁
【rest|golang笔记 | 面试题整理】
文章转自:blog.51cto.com/u_13460811/4900984
- 笔记本|续航媲美MacBook Air,这款Windows笔记本太适合办公了
- 比特币|买小众低端品牌笔记本,还不如二手一线品牌高配置,有道理吗?
- 笔记本电脑|华硕笔记本电脑问题不断?消费者很糟心
- 如何在 Notion 类产品中使用卡片笔记写作法:理念与实践
- 笔记本|一台当四台用!ROG幻16翻转本首发开卖:奢华配置18999元
- 华硕笔记本电脑问题不断?消费者很糟心
- 英特尔|AMD和Intel笔记本如何选?最新CPU天梯图告诉你答案
- 笔记本|久未露面的马云,驾着13亿游艇在西班牙游玩,说好当乡村教师呢?
- 联想|适合大一新生电气自动化专业的两款联想笔记本电脑
- 软件|高品质铸就好口碑 荣耀笔记本赢麻了:以创新科技引领体验升级