GO语言学习及重要知识点介绍

学习 GO语言

参考

Go入门指南pdf

Go语言圣经pdf

go语言编程pdf

Go数据结构和算法

GO语言学习代码

GO开发的 高度可定制的全文搜索引擎 微博搜索网站 学习资源

Go中文分词 分词器算法为基于词频的最短路径加动态规划

Go语言汉字转拼音工具

GO 图像交互界面GUI 开发

GO 机器学习

介绍

Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。为了方便搜索和识别,有时会将其称为Golang。

Go语言于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。

特点

Go语言是一门强类型的通用编程语言。它的基础语法与C语言很类似,但对于变量的声明有所不同,也对其他的一些优秀编程语言有所借鉴。

另外,Go语言支持垃圾回收。

与C++相比,Go语言并不包括如异常处理、继承、泛型、断言、虚函数等功能,

但增加了 Slice 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。

Go语言对并发编程的支持是天生的、自然的和高效的。Go语言为此专门创造出了一个关键字“go”。

使用这个关键字,我们就可以很容易的使一个函数被并发的执行。

撰写风格

在Go语言中有几项规定,而且这些是强制的,当不匹配以下规定时编译将会产生错误。

1.每行程序结束后不需要撰写分号; 
2.大括号{不能够换行放置。 
3.if 判断式和 for 循环不需要以小括号包覆起来。

代码示例

所有语言的第一个程序都是“hello world”,我们也不例外,在这里用Go语言写一个“hello world”程序。

package main

import "fmt"

func main(){

    fmt.Printf("Hello World!");

}

这段代码运行,会在控制台下打印出“hello world!”。

如果你把fmt.Printf(“Hello World!”)改为fmt.Println(“Hello World!”),在打印“Hello World”后换行。 LINE

还有值得注意的一点是:Golang官方的约定是每行程序结束后不需要撰写分号;,但是如果你不小心加了,编译器也不会报错

跨平台特性

Go语言和Java,Python一样,也是支持跨平台的。另外,Go语言还有黑科技:支持跨平台编译。比如你手头只有Mac系统,而你的用户有Linux和Windows的,他们也想使用你的Go语言程序,你可以通过交叉编译出Linux和Windows上的可执行文件给他们。另外,你甚至可以在32位平台的机器上以编译生成64位平台上的可执行程序。

Windows下安装

go语言官方下载地址:https://golang.org/dl。 
然后在这里找到对应的windows安装包,
一路Next安装即可。
安装完毕后重启电脑,在cmd控制台下输入:

go version
如果打印出:

go version go1.9.2 windows/amd64
则证明安装成功!

Linux下安装

go语言官方下载地址:https://golang.org/dl。 
然后在这里找到对应的Linux安装包,
然后执行以下命令解压:

    mkdir /home/go
    mkdir /home/gopath
    tar -C /home -xzvf go1.9.2.linux-amd64.tar.gz

接下来修改系统配置文件(环境变量),执行命令:
    vi ~/.bashrc
加入以下内容:

    export GOROOT=/home/go
    export PATH=$PATH:$GOROOT/bin
    export GOPATH=/home/gopath

然后执行:
    source ~/.bashrc

让配置文件生效。

然后打开Terminal,输入:
    go version

如果打印出:
    go version go1.9.2 linux/amd64
则证明安装成功!

GOROOT和GOPATH区别

GOROOT是Go语言的安装目录,类似于JAVA中的JAVA_HOME。

GOPATH是你代码中的引用的包所在的位置,可以看成是工程目录,可以设置多个。

IDE推荐

主流的文本编辑器,例如sublime,vscode,atom,vim和emacs等,都有Go语言插件,读者可以自行配置下。

这里推荐两款IDE,第一款是开源免费的liteide,
地址:https://www.golangtc.com/download/liteide。 
这是一个国人开发的 Google Go 语言的一个开发工具,支持单步调试,而且跨平台。

第二个是Jetbrain在2017年11月发布的Go语言IDE——GoLand,功能方面不弱,但貌似是收费的。

Golang中国社区

因为某些原因,Go语言官网在国内是没法直接访问的,用户无法从Go语言官网下载安装文件。
如果还需要下载一些第三方的依赖包,速度更是慢的不行。
Golang中国社区的出现就解决了这个问题:
不仅提供最新版的Go语言安装包和第三方包的下载,还提供liteide的下载!

地址:https://www.golangtc.com

这是一个高质量的语言社区,上面有丰富的教程和学习资料,还有各种Go语言问题的讨论。

代码示例

接下来我们看一个简单的程序,可以打印出当前运行环境中的Go语言版本号。

package main
import (
    "fmt"
    "runtime"
)
func main() {
    fmt.Println(runtime.Version())
}

数据类型

在Go语言中,数据类型用于声明函数和变量。

数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。

数据类型
Go语言按类别有以下几种数据类型:

1.bool,一个字节,值是true或者false,不可以用0或者1表示(java中boolean占用4个字节,
               而boolean作为数组出现时,每个boolean占用1个字节)

2.int/uint(带符号为与不带符号位的int类型):根据平台不同是32位或者64位

3.intx/uintx:x代表任意位数,例如:int3,代表占3bit的int类型

4.byte占用8位,一个字节,相当于uint8,不带符号位

5.floatx:由于没有double类型,所以float64就是double。float32小数精确到7位,float64小数精确到15位。

6.complex64/complex128:复数类型

7.uintptr:保存指针用的类型,也是随着平台改变而改变,因为指针的长度就是随平台而变。

8.其他类型值:array,struct,string

9.引用类型:slice,map,channel

10.接口类型:interface

11.函数类型:func

注意:Golang中还有个rune类型,它等价于int32类型。

类型转换

Golang是静态类型的编程语言,所有数据的类型在编译期确定了。
#而且 Golang中即使是底层存的是一个类型,声明的类型不一样,也要强制转换才能互用。

在Go 语言里面没有隐式转换,遇到不同类型想互用,只能进行强制类型转换。

Go语言类型转换基本格式如下:

    type_name(expression)

其中type_name是数据类型,expression是原始数据或表达式。

以下实例中将整型转化为浮点型,并计算结果,将结果赋值给浮点型变量:

package main
import "fmt"
func main() {
   var sum int = 17      
   var count int = 5     
   var mean float32        
   mean = float32(sum)/float32(count)  //强制转换
   fmt.Printf("mean 的值为: %f\n",mean)
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值