Toggle Navigation
首页
Golang
PHP
Laravel
Magento
Linux
数据库
MySQL
Redis
Mongodb
热门知识
程序与生活
架构师之路
静态站点
GitHub
主页
Gopher面试中的Coding(二)
Gopher面试中的Coding(二)
08-31
Mark
874
##1.写出下面代码输出内容: ```go package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常") } ``` 输出结果: ``` 打印后 打印中 打印前 panic: 触发异常 ``` 问题原因: - defer的执行顺序是逆序的,也就是先进后出的顺序; - panic在函数最终执行完毕才抛出异常; ##2.这段代码能编译通过吗? ```go package main import ( "fmt" ) type People interface { Speak(string) string } type Stduent struct{} func (stu *Stduent) Speak(think string) (talk string) { if think == "bitch" { talk = "You are a good boy" } else { talk = "hi" } return } func main() { var peo People = Stduent{} think := "bitch" fmt.Println(peo.Speak(think)) } ``` 输出结果: ``` # command-line-arguments .\defer.go:23: cannot use Stduent literal (type Stduent) as type People in assignment: Stduent does not implement People (Speak method has pointer receiver) ``` 问题原因: 接口赋值使用值作为参数传递var peo People = Stduent{}或者var peo People = &Stduent{};如果使用指针作为参数传递,则只能使用var peo People = &Stduent{} ##3、下面这段代码输出的值为: ```golang func main(){ jsonStr := []byte(`{"age":1}`) var value map[string]interface{} json.Unmarshal(jsonStr,&value) age := value["age"] fmt.Println(reflect.TypeOf(age)) } ``` 输出结果: ```golang float64 ``` 问题原因: To unmarshal JSON into an interface value, Unmarshal stores one of these in the interface value: - bool, for JSON booleans - float64, for JSON numbers - string, for JSON strings - []interface{}, for JSON arrays - map[string]interface{}, for JSON objects - nil for JSON null Json数据类型中没有整数,所有的数字类型在json中都存储为float64类型。
最新文章
Golang内存问题处理
WebSocket详解
Gopher面试中的Coding(三)
Golang用os/signal包实现平滑重载配置文件
Nginx实现负载均衡的几种方式
Golang中子goroutine与主协程同步的四种实现
Dockerfile文件详解
Golang开发微信公众号
最热文章
Magento实现下载csv数据表格
1797
Laravel带有条件搜索的分页
1692
Magento上传文件、缩略图和导出CSV
1690
Magento添加Advanced Dataflow
1641
Golang开发微信公众号
1570
Magento后台添加rule规则
1543
Magento优化 – MySQL读写分离
1509
Magento常用模块分享
1401
热门标签
下载
laravel分页
上传
导出
Dataflow
微信公众号
rule
规则
读写分离
模块
shell
正则
Collection
binlog
命名空间
处理
内存泄漏
Git
string
composer
解锁
锁表
事务处理
函数
redis sentinel
架构
系统
time
package
读写
事务处理
日志分析
进阶
缓存
golang
表分割
schedule
fmt
事务
分布式锁
交叉编译
HTTPS
日志分割
Gopher面试
mongodb
Dockerfile
channel
多数据库
git服务器
gogs
重载配置
负载均衡
日志过滤
php
protobuf
发展方向
版本号
模型关系
goroutine
concat
json
mongodb
get
post
defer
panic
golang算法
算法
docker
elasticsearch
rpc
代码部署
redis
主从配置
写文件
protobuf
laravel
websocket
并发
量级
package
curl
生成插件
直接下载
数据类型
Shell
错误传递
成长
grpc
参数
Go指针
队列
protobuf
方法
Redis持久化
路上
风景
yum