本文列出简单的代码片段及基础知识。

简单说明


  • import的包从src算,如果在子目录,一定要添加子目录路径。如import “a”,则a一定在src目录下。
    同一个目录只能有一个包名。但可以有多个文件(使用同一包名)。
    没有被使用的包,要删除或注释,否则编译不通过。
    包目录不能与系统包名相同,如系统有sync包,不能再创建sync目录。
    除for等外,逗号不是必须的,看个人习惯。
    没有使用的变量,编译不通过。

  • 测试
    文件名带_test的是测试专用,不能用go run来执行。

编码小结

右大括号{在行尾,如在新一行,编译不通过。
一般使用小写+大写方式。
函数:大写 导出,小写 包内(跨文件)可见。
变量:大写导出,小写包内可见。专用名称,可大写或小写。
接口、结构体:大写(一说小+大)。
文件名、包名:小写。

可带可不带分号,习惯性带分号(;)亦可。
大括号在行尾、if/for/没有小括号,但必须添加大括号。
如果引入的包不使用,又不想删除(后面可能会用到),可以注释掉,也可以调用这些包的函数,放到函数中,但不调用这个函数。
格式要求严格,如a为uint16, b为[]bytea = b[0]出错,需要转换a = uint16(b[0])。另外,a = -1也出错,因为是无符号的。

打印:

fmt.Printfln("Hello world");
fmt.Printf("Hello %v\n", "world");

代码片段(用以切换语言时看):


有传入、输出参数
func sqrt(x float64) float64 {ret := 1.0for i := 0; i < 10; i++ {ret = ret - (ret*ret - x) / 2 / ret}return ret
}"类"
package classimport ("fmt"
)// 空结构体
type SimpleClass struct {// nothing
}// "类"的形式
func (p *SimpleClass) printf() {fmt.Printf("%v\n", "hello world");
}// 大写,包外可见
func SimpleTest() {c := SimpleClass{};c.printf();
}主函数文件:
package mainimport ("class"
)
func main() {class.SimpleTest();
}if bit0 == 0 { // 注释return 'I';
} else if bit0 == 1 && bit1 == 0 {return 'S';
} else if bit0 == 1 && bit1 == 1 { // 注释return 'U';
} else { // 其它return 0;
}打印变量类型:
"reflect"
fmt.Println(reflect.TypeOf(var)) 

组装字符串示例:

    // 要点:补齐字段的用法// 年月日时分秒return fmt.Sprintf("%.4v%.2v%.2v%.2v%.2v%.2v", year, month, day, hour, minute, seconds);

同一程序代码,生成不同文件执行不同函数:

import ("fmt""os""path/filepath""strings"
)func main() {filename := filepath.Base(os.Args[0])if strings.Contains(filename, "send") {send()} else if strings.Contains(filename, "recv") {recv()} else {fmt.Println("do nothing")}
}

八、小实验

自实现模块A,存入github.com,A使用到第三方库,go get获取A会自动检测第三方库,如无则自动下载。

九、常见错误

main.go:8:5: found packages a (a.go) and main (a1.go) in e:\project\golang\src\hello\a

原因:同一个目录下,有2个包名。
解决:只保留一个包名,如必须有2个,则移到另一目录。

PS:工作中切换语言时,先看几眼本文件,以便于思维的切换。

Golang实践录:简单的代码片段相关推荐

  1. Golang实践录:命令行cobra库实例再三优化

    本文是上一文章<Golang实践录:命令行cobra库实例优化> 的优化,主要的子命令的业务实现的整理. 起因 上一版本实现的方式,还是有点不满意,格式也不对齐,重要的是,似乎不是正规的方 ...

  2. Golang实践录:命令行cobra库实例优化

    本文上一文章<Golang实践录:命令行cobra库实例> 的优化,主要的子命令的业务实现的整理. 起因 旧版本中,每个子命令的入口函数,均需一一判断传入参数,并调用对应的业务实现函数,编 ...

  3. Golang实践录:反射reflect的一些研究及代码汇总

    本文汇总一些工程中使用到的和 reflect 有关的代码示例.由于是代码片段,不一定保证完整. 解析json 本节介绍解析json的一些方法.json 可来自文件,也可来自字符串,无论哪种,都是先转换 ...

  4. Golang实践录:开篇

    自去年开始,因工作的关系,需要使用 Golang 进行开发.一来是工作,二来多了解一个新语言,总归是有好处.现在虽然不是主攻 Golang,但可能用来写一些小工具. 本系列不会系统介绍Golang,只 ...

  5. Golang实践录:ssh及scp实现的优化

    本文对上文的实现的优化. 问题提出 上一文章中,基本上已经达到使用了,但为了适应更多场合,需要对上传.下载功能进行优化,本文实现对目录的传输. 设计思路 主要框架和上文相同,不再赘述.对于目录的支持, ...

  6. go 获得 mysql 实际运行 SQL,Golang实践录:一个数据库迁移的代码记录

    实现一个数据库迁移的案子.有些知识点值得记录. 技术框架 github.com/go-xorm/xorm:数据库操作 github.com/denisenkom/go-mssqldb:sqlserve ...

  7. Golang实践录:一个数据库迁移的代码记录

    实现一个数据库迁移的案子.有些知识点值得记录. 技术框架 github.com/go-xorm/xorm:数据库操作 github.com/denisenkom/go-mssqldb:sqlserve ...

  8. Golang实践录:利用反射reflect构建通用打印结构体接口

    本文针对 Golang 的结构体字段的打印进行一些研究.其中涉及到一些反射的知识. 问题提出 总结一些实践情况,结构体字段值的输出还是比较常见的,至少笔者目前常用.比如输出某些数据表的数据(代码中会转 ...

  9. Golang实践录:静态资源文件整合:web服务

    趁着五一放假,趁着有时间,把欠的一些技术集中研究研究,写写文章,好给自己一个交待. 本文研究静态资源文件的在 web 服务器的整合. 基础 Golang 中的 web 服务框架有很多种,本文选取 gi ...

最新文章

  1. Badread: simulation of error-prone long reads
  2. js获取网页高度(详细整理)
  3. Java克隆(Clone)的应用
  4. 置换怎么表示成轮换_§2.3 置换群
  5. .net .toString() 金额数据转换
  6. JAVA数据库连接池实现
  7. 大数据中,机器学习和数据挖掘的联系与区别
  8. Win7中的clr_optimization服务
  9. This program requires version 3.4.0 of the Protocol Buffer runtime library
  10. HTML5的File API
  11. 计算机毕业论文java毕业设计论文题目基于SpringBoot项目源码旅游信息管理系统[包运行成功]
  12. 【程序源代码】微信公众号开发框架
  13. html实现tab 左右滑动
  14. iOS12加密相册、保险箱、加密相册Pro、保险箱Pro打开就闪退的,不要删除app,关闭4g和WiFi即可正常使用。
  15. 独立网店运营简要分析
  16. 实现radio取消选中的功能
  17. 基于JavaGUI的火锅自助点菜客户端和服务端系统
  18. mcnpf5输出结果_MCNP入门教程
  19. 第 1 行出现错误: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-38301: 无法对回收站中的对象执行 DDL/DML
  20. opencv python 调用网络摄像头 (局域网)

热门文章

  1. 计算机一级的复习,【计算机一级】计算机一级考试复习资料
  2. 中汽中心软件测评中心与紫光国微达成芯片认证合作
  3. 小米12系列渲染图曝光:双曲面屏+屏下摄像头
  4. 科兴生物董事长:两针建立免疫记忆 三针后抗体提升十倍
  5. 消息称AirPods 3搭载U1芯片 耳机柄变小
  6. 研究机构:特斯拉Model 3是2月份最畅销电动汽车
  7. 3399元起!120Hz瞳孔屏+65W超级闪充,一加 8T今日发布
  8. 马斯克身家742亿美元超微软前CEO鲍尔默 成全球第5大富豪
  9. CNNIC:中国网民规模超9亿,近6成学历为初中及以下
  10. 微信小程序直播助力深圳线上购物节 数百场品牌小程序开播