go介绍与安装

一、概述

          Go是Google开发的一种静态强类型,编译型,并发型,并具有垃圾回收功能的编程语言。罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go语言,于2009年11月正式宣布成为开放源代码

1、学习推荐

  1. 实验楼:Go语言编程。 51CTO:Go编程基础
  2. 推荐书籍:《Go程序语言设计》、《Go并发编程实战》、《The way to Go》

2、安装window

下载到合适的安装路径(msi,点此),配置GOPATH、GOROOT、GOBIN环境变量

安装完成之后打开 cmd ,输入go version 成功输出版本号则代表安装成功

GOROOT:Go的安装路径
GOPATH:允许多个目录,当有多个目录时,请注意分隔符,
        Windows是分号“;”,
        Linux系统是冒号“: ”
注意:
$GOPATH目录约定有三个子目录
    src:存放源代码(比如:.go .c .h .s等)
    pkg:编译时生成的中间文件(比如:.a)
    bin:编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,
    如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录)
    GOBIN:Go文件中的bin目录

3、开发工具

      比较流行的开发工具有:Sublime、VS Code、LiteIDE、GoLand(收费)官网

新建helloworld.go 文件(路径:C:\go\workspace\src\helloworld.go)

package main
 
import "fmt"
 
func main() {
    fmt.Printf("hello, world\n")
}
$>cd C:\go\workspace\src\
$>go run helloworld.go
hello,world
注意

package 必须是有效代码的第一行
main包 只能有一个
import 导入的包,必须是被使用的
main 函数 在 main 包 只能有一个,并且肯定要有一个

二.问答
1.main包 所在文件必须叫 main.go 吗 ?
 答案:不是

2.main包 可以写多个 .go 文件吗 ? 
答案:可以

3.同目录 可以有多个包名吗 ?
 答案:可以,但不可以同时编译

4.自定义包 应该如何规划目录?
 答案:最好是将同一个包的不同文件(.go)放在同一个目录,目录名建议以包名命名

5.自定义包 如何导入 main.go 中使用?  
 答案:自定义包需要添加相对路径,如:”./pkg_1”,之后通过pkg_1.方法 / 属性

6.自定义包 可以有 Main 函数吗 ? 
 答案:可以,完全不受影响

7.自定义包 如何区分公共成员与私有成员 ? 
答案:大写字母开头公共,其他私有

8.main包 分成多个.go文件 如何运行 ? 
答案:windows 上 go run main_part1.go main_part2.go ... 有多少写多少,
     linux 上 go run *.go 

二、 支持类型

1、基础类型

  1. 布尔型 bool 
  2. 整形 int8, byte, int16, int, uint, uintptr 
  3. 浮点类型: float32 (c中的float ), float64 ( c中的double ) 
  4. 复数类型: complex64, complex128(go中特有的) 
  5. 字符串: string (内置类型) 
  6. 字符类型: rune(Unicode字符类型), byte(UTF-8字符类型) 
  7. 错误类型: error 
  8. 字符 : char

2、复合类型

  1. 指针: pointer 数组: array 切片: alice 
  2. 字典: map
  3. 通道: chan
  4. 结构体: struct
  5. 接口: interface 

三、Go优缺点及用途

  1、go的优点

A、可直接编译成机器码
B、丰富的标准库支持
C、内置强大的工具
D、支持跨平台编译
E、支持自动垃圾回收
F、更丰富的内置类型支持
G、支持函数多返回值
H、错误处理支持
I、支持匿名函数和闭包
J、支持类型和接口
L、支持并发编程
M、支持反射
N、支持与C语言交互

2、go的缺点

Go语言缺点如下:缺少框架;软件包管理不完善。

3、go的用途


Go语言主要用途如下:

A、服务器编程,如处理日志、数据打包、虚拟机处理、文件系统等
B、分布式系统,数据库代理器等
C、网络编程,如Web应用、API应用、下载应用
D、内存数据库,如groupcache、couchbase的部分组建
E、云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,
   前VMare的技术总监自己出来搞的apcera云平台。

四、参考

12 年后,Go 终于默认支持泛型 (baidu.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

**星光*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值