看不懂 var _

lanceyb · 2019-04-09 17:55:04 · 2381 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-04-09 17:55:04 的主题,其中的信息可能已经有所发展或是发生改变。

var (
    _ ConnWithTimeout = (*conn)(nil)
)

原代码链接

redigo 源码,发现文件开头定义了个 _ 只读的变量,一头懵~~

求助:作者为啥这么写?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2381 次点击  ∙  1 赞  
加入收藏 微博
7 回复  |  直到 2019-10-05 18:54:00
lanceyb
lanceyb · #1 · 6年之前

求助,有大神解答下么?

polaris
polaris · #2 · 6年之前

来确保 conn 实现了 ConnWithTimeout 接口。

lanceyb
lanceyb · #3 · 6年之前
polarispolaris #2 回复

来确保 `conn` 实现了 ConnWithTimeout 接口。

@polaris 没实现接口不是会在编译的时候报错么?没必须去确认吧?

我看代码和尝试后也觉得是确保实现了,但是觉得编译会报错,没必要加这个确认

lanceyb
lanceyb · #4 · 6年之前

111.png

polaris
polaris · #5 · 6年之前

没实现,自然编译报错,就是为了编译期就能确保实现了某个接口

lanceyb
lanceyb · #6 · 6年之前

5楼 @polaris 了解了!

【报错】是在加这行代码才出现的。

感谢。>_<

zwb1002
zwb1002 · #7 · 5年之前

cannot use (conn)(nil) (type conn) as type ConnWithTimeout in assignment: *conn does not implement ConnWithTimeout (wrong type for Do method) have Do(string, ...interface {}) (interface {}, error) want Do(string) 是不是reids源码有问题 怎么解决的

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传