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

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

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

    81010编辑于 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.2K21编辑于 2022-08-02
  • golang源码分析:langchaingo(2)

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

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

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

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

    golang源码分析:easyjson(2)

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

    54120编辑于 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"

    17000编辑于 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的特性来构建可维护和高性能的应用程序。

    31810编辑于 2024-02-01
  • 来自专栏golang算法架构leetcode技术php

    golang源码分析:groupcache(2)

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

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

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

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

    golang源码分析:ubercadence(2)

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

    62030编辑于 2023-08-09
  • 来自专栏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.

    70120编辑于 2023-08-09
  • 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使用例子介绍完毕。

    29410编辑于 2026-03-18
  • 来自专栏利志分享

    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算法架构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)的复杂度。

    73910编辑于 2023-09-06
  • 来自专栏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算法架构leetcode技术php

    golang源码分析:boltdb(2)

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

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

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

    18210编辑于 2026-03-18
  • 来自专栏Golang语言社区

    Golang实现图片缩放服务器

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

    2K90发布于 2018-03-19
  • 来自专栏XinChen's Tec

    GoLang2 - Go基础语法

    6 个标记是(每行一个): 1. fmt 2. . 3. Println 4. ( 5. "Hello, World!" 6. ) 行分隔符 在 Go 程序中,一行代表一个语句结束。

    49020编辑于 2023-02-27
  • 来自专栏星辰日记

    基于Golang开发的服务器探针

    简介 这是一个基于Golang作为Client端开发的服务器探针, 用于同时展示多台服务器的基本信息. 三端 项目一共有三个平台: Client端, Server端, Web端. 分别对于项目根目录下的三个文件夹 Client端为客户端, 用于推送服务器当前状态到server端. Client端不需要公网环境. 仅支持Linux服务器 Server端分别与Client端和Web端构建Websocket通信, 用于转发信息.

    1.9K30编辑于 2022-01-04
领券