golang开始篇
一 First Golang
1.1 需求
第一个程序hello.go,可以输出"hello golang"
1.2 开发步骤
开发这个程序时,我们的目录结构怎么处理(让自己或者别人开起来更加清晰舒服)
结构如下
代码如下:
对上图的说明
(1)go文件的后缀是 .go
(2)package main
表示该 hello.go文件所在的包是main,在go中,每个文件都必须在归属于一个包。
(3)import "fmt"
表示:引入一个包,包名 fmt,引入该包后,就可以使用fmt包的函数,比如:fmt Println
(4)func main(){
}
funcs是一个关键字,表示一个函数。
main 是一个函数名,是一个主函数,既我们程序的入口。
(5)fmt.Println("hello golang ")
表示调用 fmt包的函数 Println 输出 "hello golang "
1.3 编译运行hello.go
1)通过go build 命令对该go文件进行编译,生成exe 文件
2)运行hello.exe文件即可
3)注意“通过go run 命令可以直接运行hello.go程序【类似执行一个脚本文件的形式】
go build hello.go --> hello.exe 和 go run hello.go 存在差异
在底层 go run 也存在一个源码编译的过程所以执行时间会比前者长
所以我们一般都是先编译生成exe程序再执行
1.4 Golang执 行流程分析
如果是对源码编译后,再执行,go执行流程如下图
如果我们是对源码直接 执行 go run 源码,Go的执行流程如下图
1.5 说明:两种执行流程的方式区别
1)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发
环境的机器上,依然可以运行。
2)如果我们是执行go run go源代码,那么如果要在另一个机器上这么运行,也需要开
发环境,否则无法执行。
3)在编译时,编译器会将程序运行依赖的库文件包含在执行文件中,所以,可执行文件
变大了很多。
golang开始篇的更多相关文章
- GoLang 开山篇
GoLang 开山篇 1.Golang 的学习方向 Go语言,我们可以简单的写成Golang. 2.GoLang 的应用领域 2.1 区块链的应用开发 2.2 后台的服务应用 2.3 云计算/云服务后 ...
- 1.Golang开山篇,GO就是NB!
目录:GO就是NB GO sb吗 安装环境 GO就是NB,K2R三位大佬写的GO,学GO不吃亏! (1)我们为什么要学 高并发 深度 || 广度 (2)go学习思路和目标 多打多练 掌握go语言 做一 ...
- go语言的 数组、slice、map使用(转)
golang群 点击加入 go语言的 数组.slice.map使用, 由于网上有很好的说明, 不需要再写了,请看这几篇: Go语言中的 Array, Slice和 Map 深入学习golang五篇,以 ...
- 人生苦短,LET'S GO! GO语言目录
1.Golang开山篇,GO就是NB! 1-1.go开发工具安装 2.go-人生第一个go程序和基本语法 3.go-流程控制 4.go-函数 5.go-流程控制 6.go-复合类型 7.go-面向对象 ...
- TGL站长关于常见问题的回复
问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...
- Golang分布式爬虫:抓取煎蛋文章|Redis/Mysql|56,961 篇文章
--- layout: post title: "Golang分布式爬虫:抓取煎蛋文章" date: 2017-04-15 author: hunterhug categories ...
- 了解golang的可变参数(... parameters),这一篇就够了
在实际开发中,总有一些函数的参数个数是在编码过程中无法确定的,比如我们最常用的fmt.Printf和fmt.Println: fmt.Printf("一共有%v行%v列\n", r ...
- Golang学习-第二篇 搭建一个简单的Go Web服务器
序言 由于本人一直从事Web服务器端的程序开发,所以在学习Golang也想从Web这里开始学起,如果对Golang还不太清楚怎么搭建环境的朋友们可以参考我的上一篇文章 Golang的简单介绍及Wind ...
- Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署
序言 这是本人博客园第一篇文章,写的不到位之处,希望各位看客们谅解. 本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好的将学习过程记录下来.深感惋惜! 现在 ...
随机推荐
- SpringMVC拦截器执行流程
1:MyInterceptor1.MyInterceptor2这2个拦截器都放行 MyInterceptor1......preHandleMyInterceptor2......preHandle ...
- QGraphicsItem鼠标精准拾取(pick/select)研究
在QT场景视图中,一个2D图形项是一个QGraphicsItem,我们可以通过继承来定义我们自己的图形项. 主要有以下三个虚函数需要重点关注: 1) 边界矩形(必须实现) virtual QRec ...
- android开发中json与java对象相互转换
json与java对象的相互转换.(使用com.google.gson) 在Android开发过程中,客户端总是需要从服务器获取数据,包括XML和json格式,目前json格式的数据使用较为普遍,所以 ...
- SpringBoot集成JWT
JWT(json web tokens)是目前比较流行的跨域认证解决方案:说通俗点就是比较流行的token生成和校验的方案.碰巧公司有个app的项目的token采用了jwt方案,因此记录下后端 ...
- SpringMVC中控制器接收JSP页面表单的参数接收方式详解及细节注意(400错误)
控制器方法中参数的接收 (1)以前的参数接收: String param = req.getParameter(name): (2)SpringMVC简化这个操作,只需要给控制器方法添加参数即可 a ...
- V4L2视频采集原理
一.简介 Video for Linuxtwo(Video4Linux2)简称V4L2,是V4L的改进版.V4L2是linux操作系统下用于采集图片.视频和音频数据的API接口,配合适当的视频采集设备 ...
- 使用WIFI网卡的AP功能
前几篇博客中,wifi无线网卡都工作于STA模式,那么它能否工作于AP模式.本篇博客就研究使wifi 无线网卡工作于AP模式.使用一个应用程序hostapd,关于它的介绍可以去此网站https://w ...
- hbase的javaAPI
https://www.cnblogs.com/tiantianbyconan/p/3557571.html hbase和dataFrame之间的互相转换: https://stackoverflow ...
- 25-C#笔记-文件的输入输出
1. 写txt FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileSh ...
- JQuery校验时间大小
常用于按时间条件(起始日-截止日)查询时,进行校验 function checkDate(){ var startTime = $('#startTime').val(); var endTime = ...