GO学习之 从hello.go开始
一.GO运行的两种方式
1.如果是对源码编译后,再执行
如:hello.go文件
hello.go文件(源文件)----go build hello.go[编译文件]--->变成可执行文件(.exe或其他可执行文件)---hello.exe [运行]-->输出结果
2.如果是我们是对源码直接 执行go run
hello.go文件---go run hello.go [编译运行一步]-->输出结果
两种执行流程的区别:
1)如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的环境仍然可以运行
2)如果我们是直接go run go文件 ,那么如果在另外没有go开发环境的机器是无法执行的。
3)在编译时,编译会将呈现运行依赖的库文件包含在可执行文件中,所以,可指定文件变大了很多。
什么是编译
1)有了go源文件,通过编译器将其编译成机器可以识别的二进制文件
2)在该源文件目录下,通过go build 对hello.go 文件进行编辑,可以指定生成的可执行文件名,在windows下必须是.exe后缀。
3)如果没有错误,没有任何提示,会在当前目录下会出现一个可执行文件
(windows下是.exe,Linux下是一个可执行文件),该文件是二进制码文件,也是可以执行的文件。
4)如果程序有错误,编译时,会在错误的那行报错,有助于调试。
二.go 从hello.go开始
package main import "fmt" func main() {
fmt.Println("hello world go!") }
hello.go 编译成其他的文件名的可执行文件
三.GO程序开发的注意事项
1)GO源文件以”go”为扩展名
2)GO应用程序的执行入口是main()函数
3)GO语言严格区分大小写
4)GO方法由一条语句构成,每个语句不需要分号(GO语言会在每行自动加分号),这也体现出Golang的简洁性
5)GO编程是一行行进行编译的,因此我们一行就写一条语句,不要把多条语句写在同一行,否则会出错。
6)GO语言的定义的变量或import的包如果没有使用到,代码不能编译通过
7)大括号都是成对存在的,缺一不可。
GO学习之 从hello.go开始的更多相关文章
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Unity3d学习 制作地形
这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
随机推荐
- 一些常见的HTTP的请求状态码
200:正确的请求返回正确的结果,如果不想细分正确的请求结果都可以直接返回200. 201:表示资源被正确的创建.比如说,我们 POST 用户名.密码正确创建了一个用户就可以返回 201. 202:请 ...
- sencha Architect 3.2及以下版本都适用的 破解方法
找到 没有的话 打开隐藏文件夹 C:\Users\ll\AppData\Local\Sencha\Sencha Architect 3.2 用编辑器 打开user.license 把 Print 修改 ...
- 使用acme.sh签发Let's Encrypt的免费数字证书
--------------安装----------------curl https://get.acme.sh | sh#让alias生效source ~/.bashrc ------------- ...
- centos docker 防火墙设置(多个ip之间互相访问)
[Solution] Update firewall policy 1) Disabled docker rules of iptables --- docker will create ...
- cookies、sessionStorage和localStorage的异同点
相同点:都是存储于客户端 不同点: 1.存储大小 cookies数据大小不能大于4k; localStorage和sessionStroage则可以达到5M: 2.有效时间 cookies在设置的有效 ...
- python hashlib 详解
1.概述 摘要算法简介 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定 ...
- mysql时间戳详解及运用
1.在已有表cms_nrgl_st 增加时间戳,这个时间是当前时间精确到秒的 alter table cms_nrgl_st add time_stamp TIMESTAMP DEFAULT CURR ...
- MySQL判断数据是否为空
IFNULL(expr1,expr2)函数,这个函数只能判断是否为空 SELECT CONCAT(first_name,',',last_name,',',job_id,IFNULL(commissi ...
- 深入 js 深拷贝对象
前言 对象是 JS 中基本类型之一,而且和原型链.数组等知识息息相关.不管是面试中,还是实际开发中我们都会碰见深拷贝对象的问题. 顾名思义,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来.所以无论 ...
- 最大/最小de K个数/第K个数
题目 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 思路 堆排序 收获 用优先队列实现最大最小堆 注意下列代码中优先队列 ...