首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析(2):Golang context 包

    注意:go1.6及之前版本请使用golang.org/x/net/context。go1.7及之后已移到标准库context。

    79210编辑于 2022-08-02
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析之geoip2-golang

    https://github.com/oschwald/geoip2-golang用来解析 [GeoLite2](http://dev.maxmind.com/geoip/geoip2/ 我们可以根据ip来获取ip的地理位置信息然后做响应的地域相关的业务: 1,简单的cdn,根据ip的地理信息重定向到合适的cdn服务器 2,做固定区域的业务屏蔽,比如:不给日本的用户提供服务 比如我们常用的网络工具https://github.com/zu1k/nali 其实就用到了geoip2-golang这个包来解析GeoIP2数据。 下面,我们看下这个包应该如何使用: package main import ( "fmt" "log" "net" "github.com/oschwald/geoip2-golang 接着,我们详细分析下geoip2-golang这个包的源码。

    1.1K21编辑于 2022-08-02
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:easyjson(2

    allStructs = flag.Bool("all", false, "generate marshaler/unmarshalers for all structs in a file") golang

    52320编辑于 2023-09-06
  • golang源码分析:jsonrpc(2

    初始化服务器很简单,源码位于net/rpc/server.go func NewServer() *Server { return &Server{} } type Server struct `json:"error"` } 总结下,jsonrpc 和rpc包默认实现唯一的不同就是编码解码方式和参数格式,前者使用的是json和json-rpc协议,后者使用golang

    20700编辑于 2026-03-18
  • golang源码分析:gomonkey(2)

    在介绍完如何使用和核心函数后,这里通过分析源码,看看它的实现原理。常见接口的定义位于:

    19500编辑于 2026-03-18
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:etcd(2

    Phase 2 - Start new member 首先把新节点的配置告知集群,然后把节点加入集群。 "proxy" supports v2 API only. --enable-v2 'false' Accept etcd V2 client requests. Deprecated and to be decommissioned in v3.6. --v2-deprecation 'not-yet' Phase of v2store deprecation. Start the cluster using Procfile # 2.

    67020编辑于 2023-08-09
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:ubercadence(2

    下面我能看下cadence的helloword例子的源码,它包含两个文件,第一个文件是启动程序,第二个定义了workflow和activity

    59230编辑于 2023-08-09
  • golang源码分析:langchaingo(2

    接着我们看下提示词补全的调用是如何实现的github.com/tmc/langchaingo@v0.1.13/llms/llms.go

    30310编辑于 2026-03-18
  • golang源码分析:goconvey(2

    接着我们看下第二种情况也就是非根上下文的场景,第一步也是通过discovery获取参数列表,初始化suit,这里和根context一样。

    16110编辑于 2026-03-18
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:boltdb(2

    ).meta() err0 := db.meta0.validate() err1 := db.meta1.validate() 内存映射的时候需要找出最接近的满足大小需求的2的幂次方的内存大小

    68220编辑于 2023-09-06
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:groupcache(2

    介绍完github.com/golang/groupcache如何使用和基本原理后,我们来分析下它的源码。

    50910编辑于 2023-09-06
  • golang源码分析:netrpc(2)

    client端的源码实现,首先还是具体实现一个client: package main import ( "fmt" "log" "net/rpc" ) // Args 定义与服务器相同的参数结构 type Args struct { A, B int } funcmain() { // 连接RPC服务器 client, err := rpc.DialHTTP("tcp"

    14100编辑于 2026-03-18
  • Golang基础知识(2)

    c.Radius}// 使用接口func printArea(s Shape) { fmt.Println("Area:", s.Area())}circle := Circle{Radius: 2} 错误处理Golang通过返回错误值来处理异常情况,通常与if语句结合使用。 测试(Testing)Golang内置了一个测试框架,通过在源文件中创建以_test.go结尾的文件来编写测试用例。 goCopy code// 测试函数func TestAdd(t *testing.T) { result := add(2, 3) if result ! 深入学习这些知识,可以更好地利用Golang的特性来构建可维护和高性能的应用程序。

    30510编辑于 2024-02-01
  • 来自专栏Golang语言社区

    搭建本地 golang 文档服务器

    平时我们看 golang 文档的方式通常有: go doc <package> golang.org/pkg 或者国内的 godoc.golangtc.com/pkg/ 看源码,当然这是最好的方式,只是需要更多的时间和耐心 built-in packages 名称 遍历所有 packages 运行 godoc -html <package> 保存所有文件,启动一个静态文件服务器 利用 Ruby 实现 步骤1、2,要注意遍历 启动静态服务器golang 和 ruby 都可以,我用的是 negroni,就三行代码。 问题是,这样的页面完全没有样式啊,所以我不得不去 golang.org/pkg 上 copy css 和 js 文件。 然后将 Index 的样式修改成这样: ? 至此,我们就可以愉快的在本地看 golang 文档啦。

    4.1K50发布于 2018-03-20
  • golang实现mcp client(2

    /main.go 然后,用golang实现一个mcp client package main import ( "context" "fmt" "time" "github.com Finally, I'll state that the result of adding 1 and 1 is 2. **Identify the numbers to add:** The numbers are \(1\) and \(1\). 2. **Perform the addition:** \[ 1 + 1 = 2 \] 3. **State the final answer:** \[ \boxed{2} \]]}] 至此一个完整的client使用例子介绍完毕。

    27110编辑于 2026-03-18
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:encodingjson(2

    golang源码分析:encoding/json(1)分析完序列化方法后,我们来分析下Unmarshal函数,它的源码位于encoding/json/decode.go,同样,我先看下函数的注释 value // since the field is unexported. // // See https://golang.org 但是对于json的object类型,处理起来就比较棘手,首先,json object是无序的,如果不做优化,它和go struct类型匹配的过程是O(n^2)的复杂度。 在匹配struct类型的时候,golang也进行了优化,通过反射,建立类型和对应反序列化方法的影射关系,并且根据field的名字进行了排序,将复杂度降低到O(nlogn),但是,如果json的object 的key和struct的field的名字不能完全匹配,退化到首字母不敏感匹配时,算法又会退化到O(n^2)的复杂度。

    70610编辑于 2023-09-06
  • 来自专栏利志分享

    golang读文件分析2

    = nil { fmt.Println("读内容失败", err) return } fmt.Println(len(string(content))) t2 := time.Now ().UnixNano() fmt.Println((float64(t2) - float64(t1)) / 1000000000) traceMemStats() } func traceMemStats return } content = append(content, buf...) } fmt.Println("字节长度:", len(string(content))) t2 := time.Now().UnixNano() fmt.Println((float64(t2) - float64(t1)) / 1000000000) traceMemStats1() }

    1.1K20编辑于 2022-04-25
  • 来自专栏Golang语言社区

    Golang实现图片缩放服务器

    = nil { log.Fatal(uerr) } src, err := LoadImage(url[2]) bound := src.Bounds()

    2K90发布于 2018-03-19
  • 来自专栏机器学习/数据可视化

    Golang之旅14-struct2

    main //指针类型结构体 import "fmt" type person struct { name, city string age int } func main(){ var p2 = new(person) //通过new创建指针类型的结构体 fmt.Printf("%T\n", p2) //(*p2).name = "小明" //(*p2).city = "深圳" //(*p2).age = 20 p2.city = "深圳" p2.name = "小明" //(*p2).name = "小明",二者等价 p2.age = 20 fmt.Printf ("%#v\n", p2) //取结构体的地址进行实例化 p3 := &person{} //实例化指针类型的person结构体 fmt.Printf("%T\n", p3) fmt.Printf

    40020发布于 2021-03-02
  • 来自专栏Devops专栏

    2.Golang 热加载开发

    2.Golang 热加载开发 Golang 热加载开发 在开发项目的过程中,如果总是要去重启服务,编译代码,总使一个繁琐的过程。 当然,我们可以利用一些库协助我们热加载开发,不需要重复去重启服务了。 https://github.com/gravityblast/fresh # 下载依赖库 go get github.com/pilu/fresh # 使用热加载启动服务 $ fresh 工具 2

    82840编辑于 2023-11-20
领券