目录 搜索 介绍前言前言章节概览更多信息代码规范约定Go与操作系统本书结构Go的历史为什么是GoGo的优点Go是完美的么Go内部机制本章概述编译器垃圾回收三色算法垃圾回收器背后的更多操作Unsafe code关于unsafe包另一个usafe包的例子C中调用Go函数Go PackageC代码defer关键字Panic和RecoverGo基本数据类型Go循环for循环while循环range关键字for循环代码示例Go切片切片基本操作切片的扩容字节切片copy()函数多维切片使用切片的代码示例使用sort.Slice()排序Go 映射(map)Map值为nil的坑何时该使用Map?Go 常量常量生成器:iotaGo 指针时间与日期的处理技巧解析时间解析时间的代码示例解析日期解析日期的代码示例格式化时间与日期延伸阅读练习本章小结组合类型的使用关于组合类型结构体结构体指针使用new关键字元组正则表达式与模式匹配理论知识简单的正则表达式示例高级的正则表达式示例正则匹配IPv4地址字符串rune是什么?关于Unicode的包关于字符串处理的包switch语句计算Pi的精确值实现简单的K-V存储延展阅读练习本章小结数据结构图和节点算法复杂度Go 语言中的二叉树Go 语言实现二叉树二叉树的优点Go 语言中的哈希表Go 语言实现哈希表实现查找功能哈希表的优点Go 语言中的链表Go 语言实现链表链表的优点Go 语言中的双向链表Go 语言实现双向链表双向链表的优点Go 语言中的队列Go 语言实现队列Go 语言中的栈Go 语言实现栈container 包使用 container/heap使用 container/list使用 container/ring生成随机数生成随机字符串延展阅读练习本章小结Go package中不为人知的知识关于Go packagesGo函数匿名函数多返回值的函数可命名的函数返回值参数为指针的函数返回值为指针的函数闭包函数作为参数设计你的Go packages反射和接口类型方法Go的接口类型断言设计接口接口的使用Switch用于类型判断反射使用反射的简单示例反射进阶反射的三个缺点Go的OOP思想延展阅读练习本章小结Go UNIX系统编程关于UNIX进程flag包io.Reader和io.Writer接口缓冲和无缓冲的文件输入和输出bufio包读取文本文件逐行读取文本文件逐词读取文本文件逐字符读取文本文件从/dev/random中读取从文件中读取所需的数据量为什么我们使用二进制格式读取CSV文件写入文件从磁盘加载和保存数据再看strings包关于bytes包文件权限处理Unix信号处理两种信号处理所有信号Unix管道编程用`Go`实现`cat(1)`程序遍历目录树使用ePBF关于syscall.PtraceRegs跟踪系统调用User ID和group ID其他资源练习总结并发-Goroutines,Channel和Pipeline关于进程,线程和Go协程Go调度器并发与并行Goroutines创建一个Goroutine创建多个Goroutine优雅地结束goroutines当Add()和Done()的数量不匹配时会发生什么?Channel(通道)通道的写入从通道接收数据通道作为函数参数传递管道延展阅读练习本章小结Go 并发-进阶讨论重温调度器环境变量 GOMAXPROCSselect关键字goroutine超时检查的两种方式方式1方式2重温Channel(通道)信号通道可缓冲通道值为nil的通道传送channel的通道指定通道的执行顺序通过共享变量来共享内存sync.Mutex类型忘记解锁mutex的后果sync.RWMutex类型通过goroutine共享内存竞争状态关于context包context使用的高级示例工作池延展阅读练习本章小结代码测试,优化及分析本章使用的Go版本1.10和1.9版本对比安装beta或者RC版本关于优化优化你的Go代码分析Go代码标准库net/http/pprof代码分析示例用于分析的第三方包Go分析器的web接口使用web接口的分析示例Graphviz快览go tool的代码追踪测试编程测试代码基准测试基准测试示例错误的基准测试函数基准测试的缓冲写入揪出隐藏的代码交叉编译创建示例函数生成文档延展阅读练习本章小结Go网络编程基础关于net/http,net和http.RoundTripperhttp.Response类型http.Request类型http.Transport类型关于TCP/IP关于IPv4和IPv6命令行工具netcat读取网络接口的配置文件实现DNS查询获取域名的 NS记录获取域名的 MX 记录Go实现web服务器分析HTTP服务用Go创建网站追踪 HTTP测试 HTTP handlerGo实现web客户端Go web客户端进阶HTTP连接超时SetDeadline 介绍服务端设置超时时间设置超时的另外一种方法抓包工具Wireshark和tshark延展阅读练习本章小结网络编程 - 构建服务器与客户端Go 标准库-netTCP 客户端另一个版本的 TCP 客户端TCP 服务器另一个版本的 TCP 服务器UDP 客户端UDP 服务器并发 TCP 服务器简洁的并发TCP服务器远程调用(RPC)RPC 客户端RPC 服务器底层网络编程获取ICMP数据接下来的任务延展阅读练习本章小节 暂无相关搜索结果! 本文档使用 topgoer 发布 哈希表的优点 哈希表的优点如果你认为哈希表不实用、不方便或者不巧妙,请考虑如下情形:当一个哈希表有 n 个键和 k 个桶时,查找 n 个键的时间复杂度将从使用线性查找的 O(n) 下降至 O(n/k)!尽管这点改进看起来不起眼,你也必须意识到对于一个有 20 个槽的哈希数组,查找的次数将会下降为原来的 1/20!这让哈希表非常适合用于搭建词典或者其他这类需要大量数据查找的应用。最后编辑: kuteng 文档更新时间: 2021-03-27 20:14 作者:kuteng
哈希表的优点如果你认为哈希表不实用、不方便或者不巧妙,请考虑如下情形:当一个哈希表有 n 个键和 k 个桶时,查找 n 个键的时间复杂度将从使用线性查找的 O(n) 下降至 O(n/k)!尽管这点改进看起来不起眼,你也必须意识到对于一个有 20 个槽的哈希数组,查找的次数将会下降为原来的 1/20!这让哈希表非常适合用于搭建词典或者其他这类需要大量数据查找的应用。最后编辑: kuteng 文档更新时间: 2021-03-27 20:14 作者:kuteng