go 函数
函数,代码封装的基本单元
1. 函数
函数通常使用起来并不复杂,定义或声明函数后,直接使用即可。但是为了函数更加易用,编程语言会为函数添加很多特性。在 Python 和 Go 中,函数都是一等"公民",即函数可以用在任何变量可以使用的地方,并且具有类型。因此接下来我们按照下面的顺序来讲解 Go 函数的相关内容:
函数,代码封装的基本单元
函数通常使用起来并不复杂,定义或声明函数后,直接使用即可。但是为了函数更加易用,编程语言会为函数添加很多特性。在 Python 和 Go 中,函数都是一等"公民",即函数可以用在任何变量可以使用的地方,并且具有类型。因此接下来我们按照下面的顺序来讲解 Go 函数的相关内容:
Go 的类型系统
接着上一篇,我们来继续讨论 Go 里面的复合数据类型,包括数组、slice、map和结构体。数组和结构体是聚合类型;它们的值由许多元素或成员字段的值组成。slice,map 分别与 Python 中的 array.Array,dict 相对应,它们是 Go 提供给我们容器数据类型。
Go 的类型系统
Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型。基础类型,包括:数字、字符串和布尔型。复合数据类型包括数组和结构体(通过组合简单类型,来表达更加复杂的数据结构)。引用类型包括指针、切片、字典、函数、通道,虽然数据种类很多,但它们都是对程序中一个变量或状态的间接引用。函数和通道并不属于我们通常所说的数据类型,我们放在后面相关章节来介绍。
Golang Hello World!
抛开数据结构,代码封装和复杂的库文件,我们接触一门新语言的第一步可能就是学会这门语言的基础语法。下面是我写的 go 的一个 “Hello World” 程序。在这个简单的代码中包含了很多 Go 基础语法的内容:
如果编程的世界是海贼王里的"大航海时代", go 语言可能就是"草帽海贼团"
学习和使用 Python 有三四年,好想学一门新语言,打算学 Go。为什么是 Go,其实更想学 Rust。但是 Go 有谷歌这个大佬,背靠k8s,显然学 Go 好处大大的。其实也无所谓,哪天想学 Rust,就拿来看看对比着学可能更快。当然学 Go 还有另一个重要原因,想转运维开发。
所谓“网络栈”,就包括了:
对于一个进程来说,这些要素,其实就构成了它发起和响应网络请求的基本环境。在大多数情况下,我们都希望容器进程能使用自己 Network Namespace 里的网络栈,即:拥有属于自己的 IP 地址和端口。这时候,一个显而易见的问题就是:这个被隔离的容器进程,该如何跟其他 Network Namespace 里的容器进程进行交互呢?