golang
Go 语言是谷歌 2009 年首次推出并在 2012 年正式发布的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去10多年间软件开发的难度令人沮丧。Google 对 Go 寄予厚望,其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助开发者处理琐碎但重要的内存管理问题。Go 的速度也非常快,几乎和 C 或 C++ 程序一样快,且能够快速开发应用程序。
优点:
静态编译,编译好后,扔服务器直接运行。
简单的思想,没有继承,多态,类等。
丰富的库和详细的开发文档。
语法层支持并发,和拥有同步并发的channel类型,使并发开发变得非常方便。
简洁的语法,提高开发效率,同时提高代码的阅读性和可维护性。
超级简单的交叉编译,仅需更改环境变量。
Go语言命名:
1.Go的函数、变量、常量、自定义类型、包(package)的命名方式遵循以下规则:
1)首字符可以是任意的Unicode字符或者下划线
2)剩余字符可以是Unicode字符、下划线、数字
3)字符长度不限
2.Go只有25个关键字
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
3.Go还有37个保留字
Constants: true false iota nil
Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
Functions: make len cap new append copy close delete
complex real imag
panic recover
4.可见性:
1)声明在函数内部,是函数的本地值,类似private
2)声明在函数外部,是对当前包可见(包内所有.go文件都可见)的全局值,类似protect
3)声明在函数外部且首字母大写是所有包可见的全局值,类似public
Go语言声明:
有四种主要声明方式:
var(声明变量), const(声明常量), type(声明类型) ,func(声明函数)。
Go的程序是保存在多个.go文件中,文件的第一行就是package XXX声明,用来说明该文件属于哪个包(package),package声明下来就是import声明,再下来是类型,变量,常量,函数的声明。
Golang内置类型和函数
内置类型
值类型:
bool
int(32 or 64), int8, int16, int32, int64
uint(32 or 64), uint8(byte), uint16, uint32, uint64
float32, float64
string
complex64, complex128
array -- 固定长度的数组
引用类型:(指针类型)
slice -- 序列数组(最常用)
map -- 映射
chan -- 管道
内置函数
Go 语言拥有一些不需要进行导入操作就可以使用的内置函数。它们有时可以针对不同的类型进行操作,例如:len、cap 和 append,或必须用于系统级的操作,例如:panic。因此,它们需要直接获得编译器的支持。
append -- 用来追加元素到数组、slice中,返回修改后的数组、slice
close -- 主要用来关闭channel
delete -- 从map中删除key对应的value
panic -- 停止常规的goroutine (panic和recover:用来做错误处理)
recover -- 允许程序定义goroutine的panic动作
imag -- 返回complex的实部 (complex、real imag:用于创建和操作复数)
real -- 返回complex的虚部
make -- 用来分配内存,返回Type本身(只能应用于slice, map, channel)
new -- 用来分配内存,主要用来分配值类型,比如int、struct。返回指向Type的指针
cap -- capacity是容量的意思,用于返回某个类型的最大容量(只能用于切片和 map)
copy -- 用于复制和连接slice,返回复制的数目
len -- 来求长度,比如string、array、slice、map、channel ,返回长度
print、println -- 底层打印函数,在部署环境中建议使用 fmt 包
内置接口error
type error interface { //只要实现了Error()函数,返回值为String的都实现了err接口
Error() String
}
一些感想
作为一种现代化的编程语言,Go语言以其简单、快速和高效的特性在软件开发领域广受欢迎。在学习Go语言的基础语法时,我不禁想到了以下几点感想:
一,Go语言的语法非常简洁,代码量相对较少。Go语言遵循C语言风格的语法,如大括号{}用来表示代码块,分号;用来分隔语句等,但相比于C语言,Go语言省略了一些不必要的语法元素,如括号、变量声明、函数返回值等。这使得Go语言的代码更加易于阅读和理解,也减少了程序员犯错误的机会。
二,Go语言的并发编程能力非常强大。Go语言原生支持goroutine和channel,能够轻松实现并发编程,这是Go语言的重要特性之一。在并发编程方面,Go语言的语法非常直观和易于理解,使得开发者可以轻松地编写高并发的程序。
三,Go语言的错误处理机制也非常好。在Go语言中,错误被视为一种值,并使用error类型来表示。如果函数返回了一个error类型的值,则说明函数执行过程中可能会发生错误。这种方式非常简洁和高效,使得错误处理变得更加易于管理。
四,Go语言具有良好的性能和可移植性。由于其设计初衷是用于编写操作系统和网络应用程序等高性能的程序,因此Go语言在性能方面表现出色。同时,Go语言也具有跨平台特性,能够在不同的操作系统和硬件平台上运行,这为开发者提供了更多的灵活性。
学习Go语言的基础语法对于我来说是一次很有意义的体验。我喜欢Go语言简洁明了的语法,喜欢它强大的并发编程能力和良好的错误处理机制,同时也欣赏它优秀的性能和可移植性。在未来的软件开发中,Go语言会变得越来越重要,而掌握它的基础语法是必不可少的。