一   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开始篇的更多相关文章

  1. GoLang 开山篇

    GoLang 开山篇 1.Golang 的学习方向 Go语言,我们可以简单的写成Golang. 2.GoLang 的应用领域 2.1 区块链的应用开发 2.2 后台的服务应用 2.3 云计算/云服务后 ...

  2. 1.Golang开山篇,GO就是NB!

    目录:GO就是NB GO sb吗 安装环境 GO就是NB,K2R三位大佬写的GO,学GO不吃亏! (1)我们为什么要学 高并发 深度 || 广度 (2)go学习思路和目标 多打多练 掌握go语言 做一 ...

  3. go语言的 数组、slice、map使用(转)

    golang群 点击加入 go语言的 数组.slice.map使用, 由于网上有很好的说明, 不需要再写了,请看这几篇: Go语言中的 Array, Slice和 Map 深入学习golang五篇,以 ...

  4. 人生苦短,LET'S GO! GO语言目录

    1.Golang开山篇,GO就是NB! 1-1.go开发工具安装 2.go-人生第一个go程序和基本语法 3.go-流程控制 4.go-函数 5.go-流程控制 6.go-复合类型 7.go-面向对象 ...

  5. TGL站长关于常见问题的回复

    问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...

  6. Golang分布式爬虫:抓取煎蛋文章|Redis/Mysql|56,961 篇文章

    --- layout: post title: "Golang分布式爬虫:抓取煎蛋文章" date: 2017-04-15 author: hunterhug categories ...

  7. 了解golang的可变参数(... parameters),这一篇就够了

    在实际开发中,总有一些函数的参数个数是在编码过程中无法确定的,比如我们最常用的fmt.Printf和fmt.Println: fmt.Printf("一共有%v行%v列\n", r ...

  8. Golang学习-第二篇 搭建一个简单的Go Web服务器

    序言 由于本人一直从事Web服务器端的程序开发,所以在学习Golang也想从Web这里开始学起,如果对Golang还不太清楚怎么搭建环境的朋友们可以参考我的上一篇文章 Golang的简单介绍及Wind ...

  9. Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署

    序言 这是本人博客园第一篇文章,写的不到位之处,希望各位看客们谅解. 本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好的将学习过程记录下来.深感惋惜! 现在 ...

随机推荐

  1. SpringMVC拦截器执行流程

    1:MyInterceptor1.MyInterceptor2这2个拦截器都放行 MyInterceptor1......preHandleMyInterceptor2......preHandle ...

  2. QGraphicsItem鼠标精准拾取(pick/select)研究

    在QT场景视图中,一个2D图形项是一个QGraphicsItem,我们可以通过继承来定义我们自己的图形项. 主要有以下三个虚函数需要重点关注: 1)   边界矩形(必须实现) virtual QRec ...

  3. android开发中json与java对象相互转换

    json与java对象的相互转换.(使用com.google.gson) 在Android开发过程中,客户端总是需要从服务器获取数据,包括XML和json格式,目前json格式的数据使用较为普遍,所以 ...

  4. SpringBoot集成JWT

        JWT(json web tokens)是目前比较流行的跨域认证解决方案:说通俗点就是比较流行的token生成和校验的方案.碰巧公司有个app的项目的token采用了jwt方案,因此记录下后端 ...

  5. SpringMVC中控制器接收JSP页面表单的参数接收方式详解及细节注意(400错误)

    控制器方法中参数的接收 (1)以前的参数接收: String  param = req.getParameter(name): (2)SpringMVC简化这个操作,只需要给控制器方法添加参数即可 a ...

  6. V4L2视频采集原理

    一.简介 Video for Linuxtwo(Video4Linux2)简称V4L2,是V4L的改进版.V4L2是linux操作系统下用于采集图片.视频和音频数据的API接口,配合适当的视频采集设备 ...

  7. 使用WIFI网卡的AP功能

    前几篇博客中,wifi无线网卡都工作于STA模式,那么它能否工作于AP模式.本篇博客就研究使wifi 无线网卡工作于AP模式.使用一个应用程序hostapd,关于它的介绍可以去此网站https://w ...

  8. hbase的javaAPI

    https://www.cnblogs.com/tiantianbyconan/p/3557571.html hbase和dataFrame之间的互相转换: https://stackoverflow ...

  9. 25-C#笔记-文件的输入输出

    1. 写txt FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileSh ...

  10. JQuery校验时间大小

    常用于按时间条件(起始日-截止日)查询时,进行校验 function checkDate(){ var startTime = $('#startTime').val(); var endTime = ...