golang的哪些坑爷事: package实践
在golang中package是个困惑的概念, 特别是package还可以与folder不同名, 委实让我恶心了一把.
关于golang的package的最佳实践:
package is folder.
package name is folder name.
package path is folder path.
信耶稣得永生!
1. 同一个folder存在不同package, 编译错误:
D:/go/bin/go.exe build [E:/cgss/src/pkg01]
can't load package: package pkg01: found packages pkg01 (pkg01.go) and pkg012 (pkg02.go) in E:\cgss\src\pkg01
在同一个folder存在多个package, 则加载失败. 即使是main, 也一样
D:/go/bin/go.exe build [E:/cgss/src/test]
can't load package: package test: found packages main (cgss.go) and file01 (file01.go) in E:\cgss\src\test
2. folder name与package name不同(即package path与package name不同), 则需要使用
"import alias path"语法, 即:
import <package_name> <package_path>
否则编译错误: package name不是合法标识符.
D:/go/bin/go.exe build [E:/cgss/src/test]
can't load package: package test: found packages main (cgss.go) and file01 (file01.go) in E:\cgss\src\test
package main
import "fmt"import pkg012 "pkg01"
func main() { fmt.Println(pkg012.PKG_NAME)}
golang的哪些坑爷事: package实践的更多相关文章
- golang初试:坑爷的
用Golang与perl脚本比较, 初想至多差一倍吧...结果可不是一般的坑爹, 简直就是坑爷了. Perl脚本 #!/bin/bash source /etc/profile; function e ...
- Golang中的坑二
Golang中的坑二 for ...range 最近两周用Golang做项目,编写web服务,两周时间写了大概五千行代码(业务代码加单元测试用例代码).用Go的感觉很爽,编码效率高,运行效率也不错,用 ...
- Golang 中的坑 一
Golang 中的坑 短变量声明 Short variable declarations 考虑如下代码: package main import ( "errors" " ...
- Golang的防坑小技巧
Golang的防坑小技巧 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 作为一名小白,在之前没有接触到编程的小伙伴,难免会踩到一些坑,比如说刚刚入门的时候你需要安装环境,学习Gol ...
- Golang在视频直播平台的高性能实践
http://toutiao.com/i6256894054273909249/ 熊猫 TV 是一家视频直播平台,先介绍下我们系统运行的环境,下面这 6 大服务只是我们几十个服务中的一部分,由于并发量 ...
- 初学者学习golang可能遇到的坑
我也是个golang初学者,刚入门的话,有些"坑"还是不好发现的.如map只是定义了然后就拿来使用,变量的值覆盖等. 本来打算写一篇的,后面发现有人写的挺不错的,我就把里面的有些坑 ...
- golang基础知识之encoding/json package
golang基础知识之json 简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.可以去json.org 查看json标准的清晰定义.json pack ...
- Golang的select多路复用以及channel使用实践
看到有个例子实现了一个类似于核弹发射装置,在发射之前还是需要随时能输入终止发射. 这里就可以用到cahnnel 配合select 实现多路复用. select的写法用法有点像switch.但是和swi ...
- golang:send mail using smtp package
go语言发送邮件,可以使用smtp包,两个关键函数: func PlainAuth(identity, username, password, host string) Auth func SendM ...
随机推荐
- 合并同一目录下多个EXCEL的多个sheet
合并同一目录下多个EXCEL的多个sheet到一个excel的一个sheet 1.把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel2.打开新建的excel表,并右键单击s ...
- php curl 提交 总结
1.post https提交 方法 function curl_post2($url='', $postdata='', $options=array()){ $ch = curl_init($url ...
- asp.net(c#)中如何在前端用js写条件查询,且不用调用存储过程
前端页面(源): <dx:ASPxButton ID="ASPxButton_Select" runat="server" Text="查询&q ...
- linux下的tomcat自动退出的问题
1,环境:mysql+tomcat+linux 2,发现问题:连接池断开连接 No operations allowed after connection closed 连接池断开了,再进行连接就报错 ...
- Struts2使用ModelDriven后JSON数据返回不正确
在struts.xml中加入<param name="root">action</param> <result name="exist&qu ...
- WPF和WINFORM的互操作
在WPF中使用Winform控件 <Window x:Class="WPFApplication.Window1" xmlns="http://schemas.mi ...
- 使用/proc实现内核与用户空间通信
1. 前言 Linux内核空间与用户空间的通信可通过"/proc"目录的文件读写来实现,如果只是控制内核中的参数而不是传输较多数据的话,用“/proc”是很合适的.另外一种内核 ...
- c++ builder ListView实现可编辑任意列(转)
// --------------------------------------------------------------------------- // Form的构造函数中填充StrinG ...
- 通过string型类名实例化一个类
DataTable dt = new DBHelper().getIndexInfo(code_id); DataRow row = dt.Rows[0]; string dllName = row[ ...
- 手机连上wifi热点后自动弹窗的功能
使用buildroot编译bind DNS服务器 用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以直接添加到文件系统里边,如常 ...