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. 目前该框架仍处 ...
随机推荐
- 暑假集训单切赛第二场 UVA 11988 Broken Keyboard (a.k.a. Beiju Text)(字符串处理)
一开始不懂啊,什么Home键,什么End键,还以为相当于括号,[]里的东西先打印出来呢.后来果断百度了一下. 悲催啊... 题意:给定一个字符串,内部含有'['和']'光标转移指令,'['代表光标移向 ...
- linux出现bash: ./java: cannot execute binary file 问题的解决办法
问题现象描述: 到orcal官网上下载了两个jdk: (1)jdk-7u9-linux-i586.tar.gz ------------>32位 (2)jdk-7u9-linux-x64.tar ...
- 李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释
上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像 ...
- lintcode: 翻转链表
题目: 翻转链表 翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑战 在原地一次翻转完成 解题: 递归还 ...
- java代码实现自动登录功能
通常我们登录某网站,会有选择保存几天,或者是几个星期不用登录,之后输入该网站地址无需登录直接进入主页面,那么这就叫做自动登录,怎么实现呢,下面我以一个小例子来演示一下 登录页面:login.jsp & ...
- TCL语言笔记:TCL中的数组
一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...
- brew命令
下面参考下网友的总结: 查看brew的帮助 brew –help 安装软件 brew install git 卸载软件 brew uninstall git 搜索软件 brew search git ...
- C++:类的成员函数定义方式
1.成员函数的第一种定义方式:在类声明中只给出成员函数的原型,而将成员函数的定义 放在类的外部. 返回值类型 类名::成员函数名(参数表) { 函数体 } class Point{ pub ...
- mysql: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x90</...'
插入数据出现问题,因为包含了特殊字符. 现象: 插入的数据中如果含有某些特殊字符,会导致插入数据失败,例如字符串”测试**插入数据...“,在console中insert是正常的,但是使用java代码 ...
- UDP protocol
Characteristics of the UDP protocol The UDP protocol (User Datagram Protocol) is a connectionless or ...