<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[APuddding的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/APuddding</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; APuddding]]></copyright><item><title><![CDATA[golang map探究]]></title><link>https://blog.youkuaiyun.com/APuddding/article/details/119216918</link><guid>https://blog.youkuaiyun.com/APuddding/article/details/119216918</guid><author>APuddding</author><pubDate>Thu, 29 Jul 2021 18:19:55 +0800</pubDate><description><![CDATA[map的定义


map[KeyType]ValueType

KeyType为键的类型，ValueType为值的类型

map 初始化


    m1 := make(map[int]int)
    fmt.Println(m1) // map[]
    m2 := make(map[int]int,1)

make初始化的时候，可以不指定map容量，也可以指定容量

判断map是否存在某个值


package main

import "fmt"
  
func main() {
    m1 ]]></description><category></category></item><item><title><![CDATA[golang - make 和 new的区别]]></title><link>https://blog.youkuaiyun.com/APuddding/article/details/119003198</link><guid>https://blog.youkuaiyun.com/APuddding/article/details/119003198</guid><author>APuddding</author><pubDate>Thu, 22 Jul 2021 16:45:21 +0800</pubDate><description><![CDATA[make和new 都是golang里面用来分配对应类型内存空间的内置函数，但是从接口定义和返回值等方面还是有差异的。

make


func make(t Type , size ... IntegerType ) Type

内置函数make仅用来分配和初始化slice、map和chan类型的对象。make的第一个参数是一个类型，而返回值是一个实例，类型和第一个参数类型相同。

make初始化slice：

包含3个入参，依次是创建的对象类型，length，capacity，当然cap不是必填。


p]]></description><category></category></item><item><title><![CDATA[Redis数据结构-简单动态字符串(Simple Dynamic String,SDS)（待完善）]]></title><link>https://blog.youkuaiyun.com/APuddding/article/details/118527082</link><guid>https://blog.youkuaiyun.com/APuddding/article/details/118527082</guid><author>APuddding</author><pubDate>Tue, 06 Jul 2021 18:54:21 +0800</pubDate><description><![CDATA[Redis关于 SDS的源文件在src/sds.c sds.h/sdshdr


struct sdshdr {
    // buf 中已占用空间的长度
    int len;

    // buf 中剩余可用空间的长度
    int free;

    // 字节数组
    char buf[];
};

SDS本质上就是char *，因为有了表头sdshdr结构的存在，所以SDS比传统C字符串在某些方面更加优秀，并且能够兼容传统C字符串。

sds在Redis中是实现字符串对象的工具，并且.]]></description><category></category></item><item><title><![CDATA[I/O复用(一)-select （待完善）]]></title><link>https://blog.youkuaiyun.com/APuddding/article/details/118513169</link><guid>https://blog.youkuaiyun.com/APuddding/article/details/118513169</guid><author>APuddding</author><pubDate>Tue, 06 Jul 2021 09:27:41 +0800</pubDate><description><![CDATA[select系统调用：在一段指定时间内，监听用户感兴趣的文件描述符上的可读、可写、异常事件

select 函数API如下


int select(int nfds, fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);

参数含义：
nfds 被监听的文件描述符总数，通常被设置为select监听的所有文件描述符中的最大值加1（因为文件描述符是从0开始的）
readfds、writefds、exceptfd]]></description><category></category></item></channel></rss>