go语言入门教程分享:第一个程序:HelloWorld

第一个程序:HelloWorld

一、go项目工程结构

配置好工作目录后,就可以编码开发了,在这之前,我们看下go的通用项目结构,这里的结构主要是源代码相应地资源文件存放目录结构。

1.1 gopath目录

gopath目录就是我们存储我们所编写源代码的目录。该目录下往往要有3个子目录:src,bin,pkg。

src ---- 里面每一个子目录,就是一个包。包内是Go的源码文件

pkg ---- 编译后生成的,包的目标文件

bin ---- 生成的可执行文件。

1.2 编写第一个程序

1.在HOME/go的目录下,(就是GOPATH目录里),创建一个目录叫src,然后再该目录下创建一个文件夹叫hello,在该目录下创建一个文件叫helloworld.go,并双击打开,输入以下内容:

packagemain

import"fmt"

funcmain() {

fmt.Println("Hello, World!")

}

2.执行go程序

执行go程序由几种方式

方式一:使用go run命令

step1:打开终端:

window下使用快捷键win+R,输入cmd打开命令行提示符

linux下可以使用快捷键:ctrl+alt+T

mac下command+空格,输入termainl

step2:进入helloworld.go所在的目录

step3:输入go run helloworld.go命令并观察运行结果。

方式二:使用go build命令

step1:打开终端:在任意文件路径下,运行:​ go install hello

也可以进入项目(应用包)的路径,然后运行:​ go install

注意,在编译生成go程序的时,go实际上会去两个地方找程序包:GOROOT下的src文件夹下,以及GOPATH下的src文件夹下。

在程序包里,自动找main包的main函数作为程序入口,然后进行编译。

step2:运行go程序​ 在/home/go/bin/下(如果之前没有bin目录则会自动创建),会发现出现了一个hello的可执行文件,用如下命令运行:​ ./hello

1.3 第一个程序的解释说明

3.2.1 package

在同一个包下面的文件属于同一个工程文件,不用import包,可以直接使用

在同一个包下面的所有文件的package名,都是一样的

在同一个包下面的文件package名都建议设为是该目录名,但也可以不是

3.2.2  import

import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包的函数,fmt 包实现了格式化 IO(输入/输出)的函数

可以是相对路径也可以是绝对路径,推荐使用绝对路径(起始于工程根目录)

点操作我们有时候会看到如下的方式导入包

import(

    ."fmt"

)

这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调

用的fmt.Println("hello world")可以省略的写成Println("hello world")

别名操作别名操作顾名思义我们可以把包命名成另一个我们用起来容易记忆的名字

import(

    f"fmt"

)

别名操作的话调用包函数时前缀变成了我们的前缀,即f.Println("hello world")

_操作这个操作经常是让很多人费解的一个操作符,请看下面这个import

import(

"database/sql"

_"github.com/ziutek/mymysql/godrv"

)

_操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的init函数

3.3.3 main

main(),是程序运行的入口。

1.4 包的说明

我们知道源代码都是存放在GOPATH的src目录下,那么多个多个项目的时候,怎么区分呢?答案是通过包,使用包来组织我们的项目目录结构。有过java开发的都知道,使用包进行组织代码,包以网站域名开头就不会有重复,比如千锋的网站是http://www.mobiletrain.org,我们就可以以mobiletrain.org的名字创建一个文件夹,我自己的go项目都放在这个文件夹里,这样就不会和其他人的项目冲突,包名也是唯一的。

如果有自己的域名,那也可以使用自己的域名。如果没有个人域名,现在流行的做法是使用你个人的github名,因为每个人的是唯一的,所以也不会有重复。

如上,src目录下跟着一个个域名命名的文件夹。再以github.com文件夹为例,它里面又是以github用户名命名的文件夹,用于存储属于这个github用户编写的go源代码。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容

  • 今天,我和朱梅相约到小梅姐店里楼上做深度反省,我们9点15分准时开时,11点20由店里的一位姐妹来告诉我们。 我今...
    傲雪_352a阅读 386评论 4 1
  • 1.机制如下: 注意一点: 宏任务需要多次事件循环才能执行完,微任务是一次性执行完的; 2.宏任务macrotas...
    悬笔e绝阅读 2,737评论 0 2
  • 这是很早之前我写的一个短篇故事了 之所以再写一遍 是因为我找不到我写的本子了 所以想再写一遍好好保存起来 那是我...
    三点俞_阅读 334评论 0 3