Golang零碎笔记-1

1.用Golang 撸了一个Http 服务,同时用PHP 的Swoole拓展也撸了一个Http服务。压测测试其两个性能的比较。(编译的语言VS 弱类型解释型语言,结果大概是3:1)git

swoole 实现的http 测试结果github

Go 实现的额http 测试结果golang

 

2.Go语言仅支持封装,不支持多继承(面向接口编程)编程

3.声明数组是要先声明其空间大小的,也可声明可拓展数组,通常不使用数组,使用切片,map 数据结构比较多。数组

4.切片是数组的一种视图,自己不存数据,能够向后拓展,切片的区间截取是半开闭的,左边是开,右边是闭。数组能够被叫作切片的底层数组,而切片也能够被看做是对数组的某个连续片断的引用。swoole

5.全部能被引用的包,必须放在 GOPATH  的src 目录之下。一个目录只能有一个包,一个包能够分为多个文件。数据结构

6.go get  能够获取github 上面的包,可是获取不到的golang.org上面的包。可是的能够经过安装 gopm 来解决这个问题。函数

7.Runtime包中提供了几个与goroutine有关的函数。Gosched()让当前正在执行的goroutine放弃 CPU 执行权限。调度器安排其它正在等待的线程运行。性能

8.Golang 编程中,实例化了没有被使用的变量,导入没有使用的包,都会致使编译不经过的。测试

9.没有public private 等标识符号,Go里面使用 首字母的大小写来区分属性的公开和私有。

10.方法或者内置属性能够返回多个变量,也能够定义返回值的类型

代码例子:

m := map[string]string{
"name":   "吴彦祖",
"age":    "43",
"adress": "香港",
}
if name, ok := m["name2"]; ok {
    fmt.Println(name)
} else {
     fmt.Println("值不存在")
} 

11.方法的参数能够是 值传递也能够是地址传递。值传递不会改变的 主体自己,地址传递会改变自己的类型。

12.传统面向对象类的概念,在Golang是经过结构体的构建来实现的,继承的方式,改用组合的形式。

相关文章
相关标签/搜索