-
本文实例讲述了GO语言筛选法求100以内的素数。分享给大家供大家参考。具体实现方法如下:
思路:找出一个非素数就把它挖掉,最后剩下就是素数。
下面就来欣赏一下go简洁的代码吧
目前不
-
利用go语言的协程并发优势爬取网页速度相当之快,博客园100页新闻标题只需一秒即可全部爬取
package main
import (
"bytes"
"fmt"
"github.com/PuerkitoBio/goquery"
"log"
"net/http"
"runtime"
"strconv"
"sync"
)
fu
-
defer介绍
defer是golang的一个特色功能,被称为“延迟调用函数”。当外部函数返回后执行defer。类似于其他语言的 try… catch … finally… 中的finally,当然差别还是明显的。
在使用defer之前我们应
-
1. 开发
1.1. 架构
Gorm使用可链接的API,*gorm.DB是链的桥梁,对于每个链API,它将创建一个新的关系。
db, err := gorm.Open("postgres", "user=gorm dbname=gorm sslmode=disable")
// 创建新关系
db = db.Where("name = ?", "jinz
-
删除切片指定元素一般有如下几种方法,本文以 []int 为例给出具体实现。
1.截取法(修改原切片)
这里利用对 slice 的截取删除指定元素。注意删除时,后面的元素会前移,所以下标 i 应该左
-
背景
题主现在是php程序员, 学了一周的golang, 深刻的感受到了其特性的优雅及功能的强大, 为了增强熟练度, 决定来写个贪吃蛇来践行下.(底部有github项目链接)
需求构思
1. 确定元素 -
-
引言
当你阅读Golang源码时一定遇到过unsafe.Pointer、uintptr、unsafe.Sizeof等,是否很疑惑它们到底在做什么?如果不了解这些底层代码在发挥什么作用,一定也无法了解上层应用构建的来由了,本篇
-
通过包装 tls.ClientSessionCache 记录 Get、Put 与命中,再用 ConnectionState.DidResume 区分缓存命中、TCP 连接复用和真正的 TLS 会话恢复。
-
Go 的 utf8.DecodeLastRuneInString 处理空字符串时返回 RuneError 和 size=0。本文用返回值对照、UTF-8 多字节裁剪示例,区分空输入、合法 U+FFFD 与非法尾字节。
-
Go HTTP 接口不必启动真实端口就能测试。本文用 httptest.NewRequest 和 httptest.NewRecorder 构造 Handler 的输入输出,再分别断言请求参数、方法、状态码、响应头和正文,并说明 Handler 单元测试与真实服务器测试的边界。
-
Go 1.27 针对小对象的专用内存分配器可降低分配成本,但它不会替服务端回收仍被引用的对象。本文用请求缓冲、缓存切片和 goroutine 三个边界,说明如何判断分配变快与对象活得过久是两件事。
-
Go 的流式响应不是把多次 Write 拼起来就结束了。本文从 http.ResponseController.Flush 入手,做一个可验证的 SSE 示例,解释缓冲何时真正送达、HTTP/2 与代理会带来什么差异,以及客户端断开后如何让 goroutine 和 ticker 及时收口。
-
Go 标准库 slices.Delete 会返回修改后的切片。本文用一个最小实验说明为什么必须接收返回值、底层数组何时仍被复用,以及批量删除时怎样避免循环删元素。
-
new(T)在Go中几乎从不必要,推荐用varxT或字面量初始化值类型;new仅适用于泛型、反射等少数需零值指针的场景。
-
Go中unix.Sendmsg传文件描述符失败的根本原因是SOCK_CLOEXEC标志导致fd被内核自动关闭,需手动创建socket并清除该标志,发送时正确设置SCM_RIGHTScmsg,接收后立即dup并转为*os.File。