首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go语言简介&开发环境配置

Go语言简介&开发环境配置

作者头像
Steve Wang
发布2020-12-21 11:23:47
发布2020-12-21 11:23:47
9610
举报
文章被收录于专栏:从流域到海域从流域到海域

Go (又称GoLang)是一款比较年轻的开源编程语言,它是从2007年末由来自谷歌的Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来又加入了后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源。现在Go语言拥有活跃的开发社区和开发人员,国内的一些大公司(字节、快手、B站)也纷纷开始转向基于Go的后端开发。

Go语言是一种静态强类型编译型语言,语法上与C相近,但功能上有内存安全GC结构形态以及CSP-style的并发计算等特性。

Go语言最主要的特性:
  • 自动垃圾回收
  • 更丰富的内置类型
  • 函数支持多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发编程
  • 反射
  • 语言交互性
Go语言的特色
  • 简洁、快速、安全
  • 并行、有趣、开源
  • 内存管理、数组安全、编译迅速
Go语言的应用方向

Go语言被设计成一门用于Web服务器存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能的分布式系统而言,Go语言因其编写简单,库函数全面无疑比C++/Java拥有更高的开发效率。同时,由于Go提供了海量并发的支持,它更适合于游戏服务端的开发。

Go和其他编程语言的区别

Go的语法接近C语言,但变量声明的方式不同,它支持自动垃圾回收功能。Go语言的并行模型基于Hoare的CSP,但兼具Pi运算的特征,比如通道传输。在版本1.8中开放的Plugin支持,使其能够动态加载部分函数。

C++相比,Go并不包括枚举、异常处理、继承、泛型(被很多大佬诟病)、断言、虚函数等功能,但增加了切片(Slice)、并发管道垃圾回收接口等特性的语言支持。Go 2.0版本也将开始支持泛型,但对断言的存在持负面态度,同时也不提供类型继承。

Java相比,Go内置了关联数组(即其他语言的哈希表或字典)。

Go语言对除了OOP之外的编程思想也有所吸收,它接受函数式编程的一些想法,支持匿名函数闭包;它接受面向消息编程思想,支持协程(goroutine)和通道(channel),并推荐使用消息而不是共享内存来进行并发编程。

笔者: Go语言因为是一款年轻的编程语言,所以它有机会吸收其他现有语言的一些优势和长处,同时改进它们的缺点。对小众编程哲学的包容也使得Go语言非常现代化。任何语言工具,都是给人用的,用起来简单才能显著提高生产力。Go对开发效率的巨大提升是其流行起来的根本原因。

Go 语言的优势在哪里?

参见知乎讨论,也有大佬指出Go的不足之处: 为什么要使用 Go 语言?Go 语言的优势在哪里?

HelloWorld

任何编程语言,都是从Helloworld开始的。

代码语言:javascript
复制
// hello.go
package main
import "fmt"

func main() {
	fmt.Println("Hello, World!")
}

命令行运行

代码语言:javascript
复制
$ go run hello.go

生成二进制文件

代码语言:javascript
复制
$ go build hello.go
$ ls
hello hello.go
$ ./hello
Hello, World.

开发环境配置

Go语言安装:

在https://golang.google.cn/dl/下载对应操作系统的版本,传送门

安装方法按各类系统来,一般不会出错。

IDE

IDE的话推荐GoLand,IntellJ全家桶之一。

需要注意下面两点:

  • 需要手动配置GoPath为当前项目路径
  • 必须要有一个main包,main包里面的文件需要有main方法才能运行。 即跟其他语言一样将main方法作为程序执行的入口。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Go语言最主要的特性:
  • Go语言的特色
  • Go语言的应用方向
  • Go和其他编程语言的区别
  • Go 语言的优势在哪里?
  • HelloWorld
  • 开发环境配置
    • Go语言安装:
    • IDE
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档