GO语言实战 | 青训营笔记

66 阅读5分钟
  • 因为算法的确定性,所以生成随机数时,需要设置不同的种子数
rand.Seed(time.Now().UnixNano())  // 生成随机种子数
maxNum := 100
rand.Intn(maxNum)  // 生成小于100的整数
  • 运用bufio读取客户的输入

  • 为什么流式创建能节约内存空间

    流式创建通过将对象的构建过程分解为多个小步骤,并且每个小步骤只需要占用非常少的内存空间,从而避免了在构建大型对象时可能会出现的内存溢出等问题,实现了节约内存空间的目的。

  • 如果函数结束的时候,不把流close,会怎么样

    • 为什么流式创建能节约内存空间

    流式创建通过将对象的构建过程分解为多个小步骤,并且每个小步骤只需要占用非常少的内存空间,从而避免了在构建大型对象时可能会出现的内存溢出等问题,实现了节约内存空间的目的。

  • 如果函数结束的时候,不把流close,会怎么样

    如果在函数结束时不将流 close,可能会导致资源泄漏和其他一些问题。

    在许多编程语言中,打开流(例如文件流、网络连接等)都会占用一定的系统资源,如果在使用完毕后不将其关闭,这些资源就会一直被占用,从而导致系统资源浪费和不可预知的问题。

    在 Go 语言中,打开流(例如文件流、网络连接等)也会占用系统资源,如果在使用完毕后不将其关闭,这些资源同样会一直被占用,从而导致系统资源浪费和不可预知的问题。

    此外,如果在使用流的过程中出现异常或错误,没有将其 close 可能会导致资源泄漏,因为未被释放的资源将一直被占用,从而可能导致系统资源耗尽、程序崩溃等问题。

    因此,在编写使用流的代码时,一定要养成良好的习惯,在流使用完毕后及时将其 close,以释放占用的系统资源,避免资源泄漏和其他问题。可以使用 defer 关键字在函数结束时自动关闭流,以确保流一定会被关闭

  • http.Client是干啥的

    http.Client 是 Go 语言标准库中用于发送 HTTP 请求的结构体类型。它提供了一些方法来方便地发送 HTTP 请求,例如 GetPostDo 等,这些方法可以发送 GET、POST 请求,或者其它 HTTP 请求方法,也可以设置请求头部、请求体等。http.Client 内部使用了连接池等技术,可以实现连接的复用,从而提高请求的效率。同时,http.Client 还支持设置超时时间、代理等功能,可以灵活地满足各种 HTTP 请求的需求。在 Go 语言中,http.Client 是常用的 HTTP 客户端库,可以方便地与服务器进行数据交互。

  • strings.Reader是干啥的

    strings.Reader 是 Go 语言标准库中的一个类型,它可以将一个字符串包装成一个实现了 io.Reader 接口的读取器。这样,我们就可以像读取文件一样读取这个字符串了。

    使用 strings.NewReader() 函数可以创建一个新的 strings.Reader 对象。它接收一个字符串作为参数,并返回一个实现了 io.Reader 接口的 strings.Reader 对象。可以使用 Read() 方法从字符串中读取数据。strings.Reader 类型也实现了 io.Seeker 接口,可以支持在字符串中定位和跳转读取位置。

    在 Go 语言中,strings.Reader 常用于测试、字符串处理和解析等场景。例如,我们可以将一个字符串传递给需要一个 io.Reader 类型参数的函数,并且使用 strings.NewReader() 将字符串封装成一个 strings.Reader 对象,然后传递给函数。这样可以避免使用临时文件或网络请求来获取数据。

  • http请求是只能客户端发出吗

    在 HTTP 协议中,客户端和服务器都可以发送请求和响应。

    一般情况下,我们将客户端看作是发起 HTTP 请求的一方,服务器则是响应客户端请求的一方。客户端通常是指浏览器、移动应用程序或其他客户端应用程序,而服务器则是指运行在服务器端的 Web 服务器软件,如 Apache、Nginx 等。

    客户端通过向服务器发送 HTTP 请求来请求资源或执行操作,服务器接收到请求并处理它,然后返回 HTTP 响应。HTTP 请求通常包含以下信息:

    • 请求方法:GET、POST、PUT、DELETE 等。
    • URL:请求的资源地址。
    • 请求头:包含一些额外的信息,如 Cookie、User-Agent、Referer 等。
    • 请求正文:一些需要传递给服务器的数据,如表单数据、JSON 数据等。

    HTTP 响应包含以下信息:

    • 状态码:服务器处理请求后返回的状态码。
    • 响应头:包含一些额外的信息,如 Cookie、Content-Type、Content-Length 等。
    • 响应正文:服务器返回的数据,如 HTML、JSON、图片等。

    客户端和服务器都可以使用 HTTP 请求和响应来进行通信,因此客户端和服务器都是可以发起 HTTP 请求和响应的。