云海的博客
首页
  • 接口
  • 数组
  • slice
  • map
  • 指针
  • 反射
  • Context
  • sync.map
  • 锁
  • 类型和类型指针分析
  • recover
  • 从零实现RPC框架
  • make和new区别
  • channel
  • sync.Once
  • sync.Pool
  • protobuf
  • MongoDB pkg源码-findone
  • MyBatis
  • Maven
  • 解析Laravel框架—路由处理
  • PHP(客户端)与 Golang(服务端)使用grpc+protobuf 通信
  • JAVA(客户端)与 Golang(服务端) 使用grpc+protobuf通信
  • Docker使用笔记-常用命令
  • Docker使用笔记-容器间通讯
  • Docker使用笔记-搭建Redis集群
  • Docker使用笔记-镜像多阶段构建
  • Kubernetes部署golang服务
  • Linux常用命令
  • Docker安装Prometheus与Grafana
  • Protobuf
  • TCP抓包
  • 概述-《TCP/IP详解》读书笔记
  • 索引
  • 事务隔离级别
  • 常识
  • 每日一题(1)
  • 每日一题(2)
  • 每日一题(3)
  • 每日一题(4)
关于
GitHub (opens new window)

云海

服务端研发
首页
  • 接口
  • 数组
  • slice
  • map
  • 指针
  • 反射
  • Context
  • sync.map
  • 锁
  • 类型和类型指针分析
  • recover
  • 从零实现RPC框架
  • make和new区别
  • channel
  • sync.Once
  • sync.Pool
  • protobuf
  • MongoDB pkg源码-findone
  • MyBatis
  • Maven
  • 解析Laravel框架—路由处理
  • PHP(客户端)与 Golang(服务端)使用grpc+protobuf 通信
  • JAVA(客户端)与 Golang(服务端) 使用grpc+protobuf通信
  • Docker使用笔记-常用命令
  • Docker使用笔记-容器间通讯
  • Docker使用笔记-搭建Redis集群
  • Docker使用笔记-镜像多阶段构建
  • Kubernetes部署golang服务
  • Linux常用命令
  • Docker安装Prometheus与Grafana
  • Protobuf
  • TCP抓包
  • 概述-《TCP/IP详解》读书笔记
  • 索引
  • 事务隔离级别
  • 常识
  • 每日一题(1)
  • 每日一题(2)
  • 每日一题(3)
  • 每日一题(4)
关于
GitHub (opens new window)
  • 每日一题
  • 每日一题(2)
  • 每日一题(3)
  • 每日一题(4)
  • 每日一题
云海
2022-06-23

每日一题(3)

# 1.下面两段代码输出什么
//1
func main() {
    s := make([]int, 5)
    s = append(s, 1, 2, 3)
    fmt.Println(s)
}

//2
func main() {
    s := make([]int, 0) 
    s = append(s, 1, 2, 3, 4)
    fmt.Println(s)
}


//1答案 输出: [0 0 0 0 0 1 2 3]
//2答案 输出: [1 2 3 4]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

解析:这道题考的是使用append向slice中添加元素

# 2.下面这段代码有什么缺陷
func funcMui(x, y int) (sum int, error) {
    return x + y, nil
}


//答案: 第二个返回值没有命名
1
2
3
4
5
6

解析: 在函数有多个返回值时,只要有一个返回值有命名,其它的也必须命名。如果有多个返回值必须加上括号();如果只有一个返回值且命名也必须加上()。这里的第一个返回值有命名sum, 第二个没有命名,所以错误。

# 3.new 与make的区别

答案:new(T) 和 make(T, args) 是Go语言内建函数,用来分配内存,但适用的类型不同。 new(T) 会为T类型的新值分配已置零的内存空间,并返回地址(指针),即类型为T的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为T的零值。适用于值类型,如数据、结构体等。 make(T,args)返回初始化之后的T类型的值,这个值并不是T类型的零值,也不是指针T,是经过初始化之后T的引用。make()只适用于slice 、 map和 channel。

上次更新: 2022/07/13
每日一题(2)
每日一题(4)

← 每日一题(2) 每日一题(4)→

最近更新
01
函数
04-11
02
面试题
04-11
03
EFK日志收集系统单机版
08-18
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式