blog

go 类型转换

类型声明 type 声明定义一个新的命名类型,它和某个已有类型使用同样的底层类型。命名;类型提供了一种方式来区分底层类型的不同或不兼容使用,这样就不会

go 结构

package pkg_name定义包名,即程序属于哪个包,每个 go 文件第一行 package main表示一个可独立执行的程序 每个 go 的应用程序必须包含一个 main 包 import pkg_n

go 结构体

定义结构体 访问结构体成员变量 定义结构体 struct 是域的集合 定义结构体需要使用 type 和 struct 关键字 package main import "fmt" type vertex struct { X int Y int } func main() { fmt.Println(vertex{1, 2}) } 声明结构体变量:结构体

go 范围

range 关键字用于 for 循环中迭代数组 array、切片 slice、通道 channel 或 集合 map 的元素 在数组和切片中返回元素的索引和索引对应的值的拷贝,在集合中返回 key-value

go 运算符

算术运算符: +, -, *, /, %, ++, – 关系运算符: ==, !=, >, <, >=, <= 逻辑运算符: &&, ||, ! 位运算符: &, |, ^(异或), <<, >> 赋值运算符: =, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^= 其他运算

go 递归函数

定义 func myRecursion() { //myRecursion() }

go 错误处理

go 使用 error 值表示错误状态,通过内置的错误接口提供了非常简单的错误处理机制 error 是一个接口类型,定义 type error interface { Error() string } 可在编码中通过实现 error 接口类型生成错

Google 开源项目风格指南

参考 shell 风格指南 背景 shell 文件和解释器调用 环境 注释 格式 缩进 行的长度和长字符串 管道 循环 case 语句 变量扩展 引用 特性及错误 命令替换 [test,[和[[](#

hash map

class hash_map { hash_map() {set_load(); v.reserve(max_load*b.size());} // 表“太满”(如 75% 满)时性能会恶化 void set_load(float m=0.7, float g=1.6) {max_load=m; grow=g;} // 查找 mapped_type& operator[] (const key_type& k) { // 先计算散列值,查找表索引 size_type i = hash(k) % b.size(); // 找到之后遍历散列链匹配

HLS 学习

HLS 概述 一些概念 media playlist master playlist HLS 协议简介 输入视频或音频 服务器组件 文件切片器 媒体片段文件 索引文件(Playlists) 分布式组件 客户端软件 会话模式 内容