基础知识
语言特点:
- 兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性
- 不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持
- 通过接口(interface)的概念来实现多态性
- Go语言正是在多核和网络化的时代背景下诞生的原生支持并发的编程语言。
go擅长:
- 鉴于Go语言的特点和设计的初衷,从以下几个方面来分析Go语言擅长的领域:
- 在服务器编程方面,Go语言适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;
- 网络编程方面,Go语言广泛应用于 Web 应用、API 应用、下载应用等;
- 用于内存数据库和云平台领域,目前国外很多云平台都是采用 Go 开发。
第一个程序“HELLO WORLD":
Package main
Import "fmt"
Func main(){
Fmt.Printf("Hello,World")
}
异同于其他语言的特征:
-
函数差异,实例如下图所示:
1)这个import(导入包)就和python的import一样,你也可以使用如下这样的格式:
还有如果你想导入包内的某个函数要使用**“/”符号**,而不是python的“.”,如上图所示:
这样使用函数的时候直接使用,rand就好了,而不必使用是math.rand()2)golang需要指明参数类型,但是如果连续的参数的类型是一样的话,前面的都可以不用说明,直接说明最后一个即可,如下图所示:
3)这个就有点东西了,很少见语言这样做的,直接指明返回值的类型,这个作用不仅可以有多个返回值,还可以为每个返回值命名,如下图所示:
-
命名变量的不同:
1)变量的定义通常是这个形式:
以var开头有点像js,var 变量名 类型 = 赋值
2)在函数中,“:=” 简洁赋值语句在明确类型的地方,可以用于替代 var 定义。 函数外的每个语句都必须以关键字开始(var、func、等等),:= 结构不能使用在函数外。
3)如上所说,如果在函数内,明确类型的可以直接用这个。 -
循环结构:
除了没有()其他几乎和其他语言无差 -
判断结构
1)这里是不需要加()的
2)这里可以执行一个简单的语句,(如果是变量的话,只能在这个判断结构中起作用)
3)作用范围是有限的。 -
defer
结构:
就会输出下列结构:
延迟的函数调用被压入一个栈中。当函数返回时, 会按照后进先出的顺序调用被延迟的函数调用。 -
结构体: