golang学习遭遇duang...duang...duang

neujie · · 3100 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

初学golang时,在windows上使用liteIDE进行,很多语法都能自己调整。

后来使用linux桌面,再次编写时,发现很多东西都忘掉了。这难道就是习惯gocode后的弊端吗?还是人到 前中年 的现象呢?

为了不忘记一些东东,留下一点点脚印,就对一些错误做了记录,以后再慢慢补充。

 

关于import,golang很有意思,它允许你使用别名,但是在启用别名后,就不能在使用原名啦!否则可能会遭遇下面两种问题

误用别名:

1、error: reference to undefined name ‘f’
  f.Println("slice定义测试举例:")
问题点:
在import "fmt"时,没有启用别名f,而在应用时,使用了别名f。

未用别名:
2、error: reference to undefined name ‘fmt’
  fmt.Println(ave)
问题点:
在import f "fmt"时,启用了别名f,而在应用时,没有使用别名f,依旧使用原名fmt。

更有意思的是,或者说这是它的弊端吧:它不允许你import多余的库,如果import却未使用,暴搓你:

3、 error: imported and not used: os
  "os"
问题点:
不允许import多余的包,如果import却未使用,报错。。。

关于算术计算,golang不允许类型不一致,它不愿意做多余的不属于它的事情(习惯C语言的默认转型,这里有些不习惯哦!),一不小心类型不一致,可能会遭遇下属错误:
算术运算前后类型不一致:
4、error: incompatible types in binary expression
    sum=sum+v

error: floating point constant truncated to integer
  sum:=3.2+ia
问题点:
在处理运算时,sum与v的类型不统一时,会爆此错.

关于函数引用时,如果出现类型不统一,则会遇到一下错误:
5、 error: argument 1 has incompatible type
  ave:=average(xs)
问题点:
在进行调用average函数时,出现类型不一致引起的。func average(xs []float64)(ave float64)
而实际xs的定义是:xs:=[10]float64 {1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,10.0}
在进行调用时:
ave:=average(xs),这样就会出现类型不一致,也即:xs是数组名称,而函数定义时是slice,所以,正确的调用方法是:ave:=average(xs[:])

golang的弊端不仅仅有import不允许有多余的,在变量定义上亦是如此,决不允许你随意定义多余变量,一旦定义,必须使用,duang。。duang。。duang。。

6、error: ‘sum’ declared and not used
  sum:=3.2+ia
问题点:
变量定义,但是未使用,这是不允许的。


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

本文来自:博客园

感谢作者:neujie

查看原文:golang学习遭遇duang...duang...duang

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

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