GoLang ---- 项目结构

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

  最近想学习一门新的语言,相中了GoLang,说得夸张一点,因为其具有C/C++的运行效率、Java的包管理机制、Python的编码规范以及JavaScript的简洁语法,和我的设计哲学如出一辙。
   作为一名软件工程专业的学生,学习一门新的编程语言时,我习惯从它的规范入手,所以我们先了解如何搭建程序项目的基本框架(比如源代码存放位置、自定义模块的存放位置、配置文件等),显然这是个明智的决定,因为GoLang的项目结构根本就是个坑,对新手极其不友好。

文件目录结构

  一般情况下,项目目录结构都是没有规定的,但go语言做了规定,这样可以保持一致性。

GoLang的项目目录一般包含以下几个:

  • --src 放置项目的源代码文件
  • --pkg 放置编译后生成的包 / 库文件
  • --bin 放置编译后生成的可执行文件

  go程序源文件放置于项目文件夹的src文件夹下, 如: ./project01/src/
  一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可,路径中最好不要带有中文,否则可能会编译出错。

程序目录结构

  package是GoLang的管理代码的重要机制,其作用参考Java的package、C/C++的头文件。源文件中第一段有效代码必须是 package [包名],如:

package main

import "fmt"

func main() {
   fmt.Println("Hello, World!")
}

  同一个文件夹下的文件只能有一个包名,否则编译报错。必须要有mian包,有main包才能生产exe文件。一个mian包里只能有一个main()方法,否则编译报错。main()方法是程序入口,程序运行时执行的代码就是这个方法里的代码。调用包的时候,如果包里还有main包,就会默认调用main包里的内容,当main包就是一个exe程序,不是包。这样调用就会提示:
  " import "CloudStorage/sign" is a program, not an importable package "

  不建议直接将 .go文件放在src文件下, 建议根据包名创建子文件夹,并放在子文件夹下。在GoLand中新建文件夹后,在该层目录下新建的.go文件,其package默认为当前文件夹名(大小写一致),因此会出现 package src 。package下可以嵌套package,main()方法可以在任何main包的子包下面。

  1. 文件名与包名没有直接关系,并非需要一致,但不建议文件名与包名一致。
  2. 文件夹名与包名没有直接关系,并非需要一致,但建议文件夹名与包名一致。
    (此后默认src下的每个文件夹都是package不再作说明)*

下一篇 [GoLang ---- 基础语法]https://www.jianshu.com/p/b57ffb622c9f


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

本文来自:简书

感谢作者:凉丶心园

查看原文:GoLang ---- 项目结构

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

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