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

  • 相关阅读:
    关于推荐的一个算法工程师访谈,有一些内容值得看看
    Element.Event
    复数输出
    Passenger/Nginx/Debian快速部署Rails
    POJ3678【错误总会让自己有收获的】
    android在其他线程中访问UI线程的方法
    C++运算符重载的方法
    Struts2图片文件上传,判断图片格式和图片大小
    list view Item 里面有ImageButton
    用python实现远程复制 (scp + expect )
  • 原文地址:https://www.cnblogs.com/zhengweizhao/p/10531360.html
Copyright © 2020-2023  润新知