浅聊一下Go语言| 青训营

143 阅读4分钟

Go语言的创始人

Go语言的创始人是Robert Griesemer、Rob Pike和Ken Thompson。他们是在Google工作的资深工程师,于2007年开始着手设计和开发Go语言。Robert Griesemer主要负责语言设计和语法规范的制定,Rob Pike则负责工具链和标准库的开发,而Ken Thompson则对Go语言的编译器和运行时进行了重要的贡献。他们共同的目标是创建一种简单、高效、可靠的编程语言,以满足Google内部的需求,并能够应对现代软件开发的挑战。通过他们的努力,Go语言于2009年首次公开发布,并逐渐在开发者社区中获得了广泛的认可和应用。

GO语言的项目

下面是我从大神那copy下来的原生项目,大家自行领取吧。

Docker

Docker是一种开源的容器化平台,可以将应用程序及其依赖项打包成一个独立的容器,实现快速部署、可移植和可扩展的应用程序环境。

链接:github.com/docker/dock…

Go语言

Go语言是由Google开发的一种开源编程语言,具有简洁易学、高效并发和内存管理等特点,适用于构建高性能和可靠的应用程序。

链接:github.com/golang/go

Kubernetes

Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了容器编排、服务发现、负载均衡等功能,简化了容器化应用程序的管理和运维。

链接:github.com/kubernetes/…

etcd

etcd是一个高可用的分布式键值存储系统,用于存储和管理配置数据、元数据等。它被广泛用于Kubernetes等分布式系统中,提供了分布式一致性和高可用性的支持。

链接:github.com/coreos/etcd

beego

beego是一个开源的Go语言Web框架,提供了丰富的功能和工具,用于快速构建高性能的Web应用程序。它具有MVC架构、路由、ORM等特性,简化了Web开发的过程。

链接:github.com/astaxie/bee…

martini

martini是另一个开源的Go语言Web框架,它的设计理念是简单和模块化。它提供了中间件、路由和依赖注入等功能,适用于快速构建小型和中型的Web应用程序。

链接:github.com/go-martini/…

codis

codis是一个开源的分布式Redis解决方案,用于提供高可用性和扩展性的Redis服务。它通过将数据分片和复制到多个Redis节点,实现了数据的分布式存储和负载均衡。

链接:github.com/CodisLabs/c…

delve

delve是一个Go语言的调试器,用于在开发过程中进行调试和分析。它提供了断点、变量查看、堆栈跟踪等功能,帮助开发人员定位和解决问题。

链接:github.com/derekparker…

GO语言基本语法总结

  1. 包声明:每个Go文件都必须声明所属的包,使用关键字package,例如package main表示该文件属于main包。

  2. 导入包:使用关键字import导入其他包,可以导入多个包,多个导入语句可以写在一行,也可以分开写。

  3. 函数声明使用关键字func定义函数,函数名后面跟着参数列表和返回值类型,例如func add(a, b int) int表示定义了一个名为add的函数,接收两个int类型的参数,返回值为int类型。

  4. 变量声明:使用关键字var声明变量,变量名在前,类型在后,例如var name string表示声明了一个名为name的字符串类型变量。

  5. 常量声明:使用关键字const声明常量,常量名在前,值在后,例如const pi = 3.14159表示声明了一个名为pi的常量,值为3.14159

  6. 数组和切片:数组是一组相同类型的数据的集合,切片是对数组的一个引用,可以动态增长。数组的长度是固定的,切片的长度可以改变。

  • 声明数组:使用var关键字声明数组,例如var arr [5]int表示声明了一个长度为5的int类型数组。

  • 声明切片:使用make函数声明切片,例如slice := make([]int, 0, 5)表示声明了一个长度为0、容量为5的int类型切片。

  1. 结构体:结构体是一种自定义的数据类型,可以包含多个字段,每个字段可以是不同的数据类型。
  • 声明结构体:使用type关键字声明结构体,例如type Person struct { name string; age int }表示声明了一个名为Person的结构体,包含name和age两个字段。

  • 创建结构体实例:使用var关键字创建结构体实例,例如var p Person表示创建了一个名为pPerson结构体实例。