1 安装配置与命令

  • GOROOT:Go根目录

  • GOPATH:GO工作目录,其目录下需要建立一下三个子目录

    • bin :存放编译后生成的可执行文件
    • pkg :存放编译后生成的包文件
    • src :存放项目源码
  • 常用GO命令

    • go get:获取远程包(需 提前安装 git或hg)
    • go run:直接运行程序
    • go build:测试编译,检查是否有编译错误
    • go fmt:格式化源码(部分IDE在保存时自动调用)
    • go install:编译包文件并编译整个程序
    • go test:运行测试文件
    • go doc:查看文档
    • godoc -http ":80" :本地启动Go的文档可通过localhost访问

2 基本规则

2.1 Go程序结构

  1. Go程序是通过 package 来组织的,只有 package 名称为 main 的包可以包含 main 函数,一个可执行程序 有且仅有 一个 main 包
  2. import 关键字来导入其它非 main 包
  3. const 关键字来进行常量的定义
  4. 在函数体外部使用 var 关键字来进行全局变量的声明与赋值
  5. type 关键字来进行结构(struct)或接口(interface)的声明
  6. func 关键字来进行函数的声明

2.2 package

  • 导入包之后,就可以使用格式.

    来对包中的函数进行调用
  • 如果导入包之后 未调用 其中的函数或者类型将会报出编译错误
  • 当使用第三方包时,包名可能会非常接近或者相同,此时就可以使用别名来进行区别和调用
  • 省略调用,不建议使用,易混淆,不可以和别名同时使用
import f "fmt"  //别名

import (
. "fmt" //省略调用
) import (
"fmt"
"io"
"net/http"
) //import多个包导入,常量、全局变量和type等都可以这样

2.3 可见性

Go语言中,使用 大小写 来决定该 常量、变量、类型、接口、结构

或函数 是否可以被外部包所调用:

  • 函数名首字母 小写 即为private
  • 函数名首字母 大写 即为public

2.4 Go基本结构

//当前程序包名
package main //导入其他包
import "fmt" //常量的定义
const PI = 3.14 //全局变量的定义
var str string = "Hello World !" //一般类型声明
type newType int //结构的声明
type gopher struct{} //结构的声明
type golang interface{} //main主函数,也是程序的入口
func main(){
fmt.Println(str)
}

GO入门——1.基础的更多相关文章

  1. Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

    转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...

  2. Qt入门之基础篇(三):掌握Qt4的静态编译基本方法

    转载载请注明出处:CN_Simo. 导语: 前两章都提到过“静态编译”(Static Compilation),在Windows下一次静态编译差不多需要长达三个小时才能完成,而且还非常容易由于各种原因 ...

  3. Spring Boot 入门之基础篇(一)

    原文地址:Spring Boot 入门之基础篇(一) 博客地址:http://www.extlight.com 一.前言 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是 ...

  4. Python之路,第一篇:Python入门与基础

    第一篇:Python入门与基础 1,什么是python? Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. 2,python的特征: (1)易于学习,易于利用: (2)开 ...

  5. 8 张脑图入门 JavaScript - 基础面试不倒

    8 张脑图入门 JavaScript - 基础面试不倒 转载请注明出处 第一:JavaScript 的变量 第二:JavaScript 运算符 第三:JavaScript 数组 第四:JavaScri ...

  6. Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装

    转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...

  7. Git 快速入门--Git 基础

    Git 快速入门 Git 基础 那么,简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 G ...

  8. Unix操作系统的入门与基础

    http://dev2dev.cnblogs.com/archive/2005/10/10/251894.aspx Unix操作系统的入门与基础 与大家熟悉的Windows用户界面和使用习惯不同,Un ...

  9. Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)

    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...

  10. Python入门篇-基础语法

    Python入门篇-基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编程基础 1>.程序 一组能让计算机识别和执行的指令. 程序 >.算法+ 数据结构= 程 ...

随机推荐

  1. 冬瓜头答疑:磁盘阵列内部FC-AL的性能问题

    冬瓜头答疑:磁盘阵列内部FC-AL的性能问题 作者:冬瓜头出处:IT专家网2009-08-03 09:59   问: 大多数磁盘阵列都是通过两个控制器后端的端口,组成1/2/4条FC-AL环,来连接所 ...

  2. How to transfer developer profile to one mac to another mac

    Export developer profile from old mac. In the Xcode Organizer, select your team in the Teams section ...

  3. (打表+优化)简单的求和 -- zzuli -- 1783

    http://acm.zzuli.edu.cn/problem.php?id=1783 1783: 简单的求和 Time Limit: 1 Sec  Memory Limit: 128 MBSubmi ...

  4. poj 2449 Remmarguts' Date【第K短路】

    题目 题意:求 点s 到 点t 的 第 k 短 路的距离: 估价函数=当前值+当前位置到终点的距离 f(n)=g(n)+h(n);     g(n)表示g当前从s到p所走的路径的长度,      h( ...

  5. jvm虚拟机---执行引擎子系统

    Java虚拟机只与Class文件相关联,它规定了Class文件应该具有的格式,而不论该文件是由什么语言编写并编译而来.所以,任何语言只要能够最终编译成符合Java虚拟机要求的Class文件,就可以运行 ...

  6. [leetcode 14]Longest Common Prfix

    1 题目: Write a function to find the longest common prefix string amongst an array of strings. Hide Ta ...

  7. js获取select标签选中的值及文本

    原生js方式: var obj = document.getElementByIdx_x(”testSelect”); //定位id var index = obj.selectedIndex; // ...

  8. redhat安装docker

    一.禁用selinux 由于Selinux和LXC有冲突,所以需要禁用selinux.编辑/etc/selinux/config,设置两个关键变量.     SELINUX=disabled  SEL ...

  9. .net core 与ELK(3)安装Kibana

    1.去产品官网下载https://www.elastic.co/downloads/kibana 对应的tar.gz的压缩包,放到/usr/local/src目录 2.解压 -linux-x86_64 ...

  10. es6新增Math方法

    Math.trunc()  用于去除一个数的小数部分,只返回整数部分 Math.trunc(4.1) // 4 Math.trunc(4.9) // 4 Math.trunc(-4.1) // -4 ...