Go学习笔记(八)

(文章持续更新中...有志同道合的人能够一块儿探讨下。整个系列(1~8)准备重写,不过都是很基础的入门笔记,想学到很深刻的东西则不建议阅读...)数组

反射是指在程序运行期对程序自己进行访问和修改的能力,使用 reflect.TypeOf() 函数能够得到任意值的类型对象(reflect.Type)bash

const (
    Invalid Kind = iota  // 非法类型
    Bool                 // 布尔型
    Int                  // 有符号整型
    Int8                 // 有符号8位整型
    Int16                // 有符号16位整型
    Int32                // 有符号32位整型
    Int64                // 有符号64位整型
    Uint                 // 无符号整型
    Uint8                // 无符号8位整型
    Uint16               // 无符号16位整型
    Uint32               // 无符号32位整型
    Uint64               // 无符号64位整型
    Uintptr              // 指针
    Float32              // 单精度浮点数
    Float64              // 双精度浮点数
    Complex64            // 64位复数类型
    Complex128           // 128位复数类型
    Array                // 数组
    Chan                 // 通道
    Func                 // 函数
    Interface            // 接口
    Map                  // 映射
    Ptr                  // 指针
    Slice                // 切片
    String               // 字符串
    Struct               // 结构体
    UnsafePointer        // 底层指针
)
复制代码

Go 语言中的类型名称对应的反射获取方法是 reflect.Type 中的 Name() 方法,返回表示类型名称的字符串。函数

类型归属的种类(Kind)使用的是 reflect.Type 中的 Kind() 方法,返回 reflect.Kind 类型的常量工具

反射不只能够获取值的类型信息,还能够动态地获取或者设置变量的值。Go 语言中使用 reflect.Value 获取和设置变量的值性能

Go 语言中,使用 reflect.ValueOf() 函数得到值的反射值对象(reflect.Value)ui

value := reflect.ValueOf(rawValue)
复制代码

若是反射值对象(reflect.Value)中值的类型为函数时,能够经过 reflect.Value 调用该函数。使用反射调用函数时,须要将参数使用反射值对象的切片 []reflect.Value 构造后传入 Call() 方法中,调用完成时,函数的返回值经过 []reflect.Value 返回spa

+=================================================+指针

Go 语言中使用 go build 命令将源码编译为可执行文件code

go run 命令会编译源码,而且直接执行源码的 main() 函数,不会在当前目录留下可执行文件.,可执行文件被放在临时文件中被执行,工做目录被设置为当前目录对象

go install 的功能和 go build 相似,附加参数绝大多数均可以与 go build 通用。go install 只是将编译的中间文件放在 GOPATH 的 pkg 目录下,以及固定地将编译结果放在 GOPATH 的 bin 目录下

go get 能够借助代码管理工具经过远程拉取或更新代码包及其依赖包,并自动完成编译和安装

Go 语言工具链中的 go pprof 能够帮助开发者快速分析及定位各类性能问题,如 CPU 消耗、内存分配及阻塞分析

相关文章
相关标签/搜索