Golang零碎笔记-1

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

swoole 实现的http 测试结果

Go 实现的额http 测试结果

 

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

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

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

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是通过结构体的构建来实现的,继承的方式,改用组合的形式。

posted @ 2019-03-14 16:51  阿鸠  阅读(223)  评论(0编辑  收藏  举报