golang学习遭遇duang...duang...duang
初学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
问题点:
变量定义,但是未使用,这是不允许的。
golang学习遭遇duang...duang...duang的更多相关文章
- golang学习遭遇错误原因分析续
7. error: reference to field ‘Printf’ in object which has no fields or methods f.Printf("%v&quo ...
- golang学习之beego框架配合easyui实现增删改查及图片上传
golang学习之beego框架配合easyui实现增删改查及图片上传 demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DO ...
- Golang学习 - 学习资源列表
Golang 学习资源: <Go 语言圣经(中文版)> - 书籍 http://shinley.com/index.html <学习 Go 语言> - 书籍 http://w ...
- Golang学习:sublime text3配置golang环境
最近导师让学习golang, 然后我就找了些有关golang的学习视频和网站. 昨天在电脑上下载了go tools, 之后在sublime上配置了golang的运行环境.By the way, 我的电 ...
- golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题
golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题 下面这个程序运行的能num结果是什么? package main import ( "fmt" " ...
- golang学习笔记19 用Golang实现以太坊代币转账
golang学习笔记19 用Golang实现以太坊代币转账 在以太坊区块链中,我们称代币为Token,是以太坊区块链中每个人都可以任意发行的数字资产.并且它必须是遵循erc20标准的,至于erc20标 ...
- golang学习笔记18 用go语言编写移动端sdk和app开发gomobile
golang学习笔记18 用go语言编写移动端sdk和app开发gomobile gomobile的使用-用go语言编写移动端sdk和app开发https://blog.csdn.net/u01249 ...
- golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍
golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
随机推荐
- Mac 如果一定要写个锁屏程序的话就这样
package test; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import ...
- cojs 安科赛斯特 题解报告
QAQ 从IOI搬了一道题目过来 官方题解貌似理论上没有我的做法优,我交到BZOJ上也跑的飞快 结果自己造了个数据把自己卡成了4s多,真是忧桑的故事 不过貌似原题是交互题,并不能离线 说说我的做法吧 ...
- 李洪强漫谈iOS开发[C语言-039]-剪刀石头布
李洪强漫谈iOS开发[C语言-039]-剪刀石头布
- python 常用数据结构使用
python 字典操作 http://www.cnblogs.com/kaituorensheng/archive/2013/01/24/2875456.html python 字典排序 http:/ ...
- Hibernate逍遥游记-第15章处理并发问题-001事务并发问题及隔离机制介绍
1. 2.第一类丢失更新 3.脏读 4.虚读.幻读 5.不可重复读 6.第二类丢失更新 7.数据库的锁机制 8.数据库事务的隔离机制
- 在PowerDesigner中设计物理模型1——表和主外键
原文:在PowerDesigner中设计物理模型1--表和主外键 在PD中建立物理模型由以下几种办法: 直接新建物理模型. 设计好概念模型,然后由概念模型生成物理模型. 设计好逻辑模型,然后由逻辑模型 ...
- C++:调整基类成员在派生类中的访问属性的其他方法(同名成员和访问声明)
4.3 调整基类成员在派生类中的访问属性的其他方法 4.3.1 同名函数 在定义派生类的时候,C++语言允许在派生类中说明的成员与基类中的成员名字相同,也就是 说,派生类可以重新说明与基类成员同名的成 ...
- 在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序(老罗学习笔记3)
简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中.接着,在Ubuntu上为Android系统编写Linux内核驱动程序(老罗学习笔记1)一文中举例子说明了如何在 ...
- flume介绍以及环境的部署
收集.聚合时间流数据分布式框架.通常用户log数据 采用ad-hoc方案,明显有点如下: 可靠的.可伸缩.可管理.可定制.高性能 声名式配置,可以动态配置 提供上下文路由功能 支持负载均衡和故障转移 ...
- StaggeredGridLayoutManager
Class Overview A LayoutManager that lays out children in a staggered grid formation. It supports hor ...