首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏TechFlow

    Golang入门教程——map篇

    今天是golang专题的第7篇文章,我们来聊聊golang当中map的用法。 map这个数据结构我们经常使用,存储的是key-value的键值对。 而那些非常严重,无法handle的异常在golang当中称为panic。 golang当中的异常处理机制和其他语言相差很大,整体的逻辑和内核都不太一样。 在golang当中我们则是直接通过方括号进行查询,那么这就有了一个问题,如果key不在其中怎么办? 我们可以发现,map一如既往地体现了golang语法精简的特点。 golang的套路就是精简,能省就省,能简单绝不复杂。

    75610发布于 2020-06-03
  • 来自专栏Nicky's blog

    Golang系列之快速入门教程

    Go 语言又称 Golang,由 Google 公司于 2009 年发布的,和 Java 类似,它是一门静态的、强类型的、编译型的编程语言, Go 语言支持 Windows、Linux 等多个平台,也可以直接在 但是,随着即时 (JIT) 编译的发展,性能差距正在缩小,比如JavaScript、Python等等 2、go语言的背景 go语言是Google公司推出的一门编程语言,其核心成员是3位大牛: 然后,为什么要开发出golang语言? 可支持大并发处理,高效利用多核 有管道通信机制,通过go语言的channel,可以实现不同goroute之间的通信 函数可以返回多个值,而且必须有一个main函数 func getCount(n1 int,n2 int){ sum := n1 + n2; sub := n1 - n2; return sum,sub; } 新的特性,slice切片、延时执行等 语法很规范,比如一行代码就写一行,不能和java

    59120编辑于 2022-03-07
  • 来自专栏TechFlow

    Golang入门教程——基本操作篇

    func sample() (string, string) { return "sample1", "sample2" } 多值返回也会有一个小小的问题,就是如果我们要返回的值过多,会导致这个 我们来看下面的例子: func sample(x, y, z int) (xPrime, yPrime, zPrime int) { xPrime, yPrime, zPrime = x-1, y+1, z-2 golang当中同样支持++的自增操作,不过golang中只支持i++,而不支持++i。 fmt.Println(i) if i > 10 { break } } 我们也可以省略循环变量的自增条件: for i := 0; i < 10; { i += 2 我们来看下,假如我们有一个数组是: nums := []int{2, 3, 4} sum := 0 for i, v := range nums { sum += v fmt.Println

    1.1K10发布于 2020-05-14
  • 来自专栏TechFlow

    Golang入门教程——面向对象篇

    今天是golang专题的第9篇文章,我们一起来看看golang当中的面向对象的部分。 在现在高级语言当中,面向对象几乎是不可或缺也是一门语言最重要的部分之一。 golang作为一门刚刚诞生十年的新兴语言自然是支持面向对象的,但是golang当中面向对象的概念和特性与我们之前熟悉的大部分语言都不尽相同。 在golang当中type关键字的含义是定义一个新的类型。 首先,我们了解了通过type和struct关键字来定义一个结构体,结构体是golang当中面向对象的载体,golang抛弃了传统的面向对象的实现方式和特性,拥有自己的面向对象的理念。 面向对象部分可以说是golang这一门语言当中最大的创新之一,也正是因为抛弃了传统的类以及继承、派生的概念,使得golang当中的面向对象语法糖相对简洁。也因此有人将golang称为升级版的C语言。

    49020发布于 2020-06-24
  • 来自专栏GavinUI

    Golang 入门教程 ( 一 ) 运行环境搭建

    vscode 安装 Golang 插件 打开 vscode 的拓展配置,安装 go 的插件 图片 同时安装 go 语言开发工具包 在 vscode 中,按下 command + shift + p ,输入 github.com/ramya-rao-a/go-outline@latest go install github.com/acroca/go-symbols@latest go install golang.org /x/tools/cmd/guru@latest go install golang.org/x/tools/cmd/gorename@latest go install github.com/josharian install github.com/rogpeppe/godef@latest go install github.com/sqs/goreturns@latest go install github.com/golang

    1.5K91发布于 2021-05-03
  • 来自专栏TechFlow

    Golang简单入门教程——函数进阶篇

    今天是golang专题的第八篇,我们来聊聊golang当中的函数。 我们在之前的时候已经介绍过了函数的基本用法,知道了怎么样设计或者是定义一个函数,以及怎么样调用一个函数,还了解了defer的用法。 今天这篇文章我们来继续深入这个话题,来看看golang当中关于函数的一些进阶的用法。 返回error 前文当中我们曾经提到过,在golang当中并没有try catch捕获异常的机制。 func main() { ret, err := Divide(5, 2) if err == nil { fmt.Println(ret) } else { fmt.Println(err golang当中也支持匿名函数,但是golang当中匿名函数的使用方式和Python等语言稍稍有些不同。 总结 关于golang当中函数的高级用法就差不多介绍完了,这些都是实际编程当中经常使用的方法,如果想要学好golang这门语言的话,这些是基本功。

    61820发布于 2020-06-17
  • 来自专栏golang算法架构leetcode技术php

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

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

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

    golang源码分析之geoip2-golang

    https://github.com/oschwald/geoip2-golang用来解析 [GeoLite2](http://dev.maxmind.com/geoip/geoip2/ 比如我们常用的网络工具https://github.com/zu1k/nali 其实就用到了geoip2-golang这个包来解析GeoIP2数据。 下面,我们看下这个包应该如何使用: package main import ( "fmt" "log" "net" "github.com/oschwald/geoip2-golang 接着,我们详细分析下geoip2-golang这个包的源码。 它的源码很简单只有一个文件: reader.go 调用了maxminddb数据解析包github.com/oschwald/maxminddb-golang来做 数据的解析,仅仅做了一层接口上的封装

    1K21编辑于 2022-08-02
  • 来自专栏计算机视觉理论及其实现

    Detectron2入门教程

    其他一些个人博客 知乎专栏 - detectron2项目指北这个知乎专栏中有一系列《Detectron2源码阅读笔记》文章。 在知乎里,Detectron2的开发人员介绍,如果想要利用detectron2直接复现所有论文可能比较困难(我的理解就是直接修改detectron2中的代码),一种比较好的方式就是将detectron2 Getting Started with Detectron2:跑个Demo,没啥好说的。Extend Detectron2's Defaults 谈了谈Detectron2的基本设计思路。 相关代码:主要位于 detectron2/detectron2/data 目录下。 相关代码:主要在 detectron2/detectron2/engine 和 detectron2/detectron2/solver 中相关配置:detectron2/config/defaults.py

    11K54编辑于 2022-09-03
  • golang源码分析:langchaingo(2

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

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

    `json:"error"` } 总结下,jsonrpc 和rpc包默认实现唯一的不同就是编码解码方式和参数格式,前者使用的是json和json-rpc协议,后者使用golang

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

    golang源码分析:easyjson(2

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

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

    20910编辑于 2024-02-01
  • golang源码分析:netrpc(2)

    在分析完server端的源码实现后,我们分析下client端的源码实现,首先还是具体实现一个client:

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

    golang源码分析:groupcache(2

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

    37810编辑于 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() }

    87720编辑于 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)的复杂度。

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

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

    golang源码分析:ubercadence(2

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

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

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

    8800编辑于 2026-03-18
领券