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

  • 相关阅读:
    js 能实现监听F5页面刷新子iframe 而父页面不刷新
    Thinkpad X201 Gobi2000 上电信3G网络
    【M30】代理类
    C++数组
    【M27】要求或者禁止对象产生于heap之中
    C++ delete operator做了什么事
    【M33】将非尾端类设计为抽象类
    【M32】在未来时态下发展程序
    【M34】如何在同一个程序中结合C++和C
    【M25】将构造方法和非成员方法虚化
  • 原文地址:https://www.cnblogs.com/zhengweizhao/p/10531360.html
Copyright © 2011-2022 走看看