前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang 值得注意的地方

Golang 值得注意的地方

作者头像
李海彬
发布2018-03-21 16:15:11
7340
发布2018-03-21 16:15:11
举报
文章被收录于专栏:Golang语言社区

Golang 值得注意的地方

golang 的语法和使用方式都非常简单明了,没有花哨的语法糖,也没有多余的关键字。 但是即使是这么简洁的语言,仍然有一些不那么直白,需要注意的地方,比如下面2点。

interface 赋值 nil Pointer 之后,变成 non-nil

interface 由2部分组成, typevalue ,调用 func f 的时候,out 的 type 设置为 *bytes.Buffer, value 设置为 nil。 此时 out != nil,因为虽然 out 的 value == nil, 但是 type !=nil 在写代码时如果不注意这里,很容易导致运行时的 panic

类型判断的返回值有 2 种

golang 中可以通过类型判断来进行转型。 类型判断时,转型的代码可以返回一个值,也可以返回2个值(附加判断结果 ok)。

同一段代码的返回值,却有2种情况,channel和map也有上面的现象:(如以下代码都是正确的)

这种语法的实现简单来说,就是 golang 在类型判断时,会根据语法树检查 = 左边是否有 comma(也就是逗号),如果有的话就返回2个值,没有就返回一个值。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • interface 赋值 nil Pointer 之后,变成 non-nil
  • 类型判断的返回值有 2 种
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档