Code Monkey home page Code Monkey logo

goa.c's People

Contributors

azwc avatar baici1 avatar dazhenga avatar feng99 avatar frankxjkuang avatar honkkki avatar hunterhug avatar jjuu avatar kiritoabc avatar vcheckzen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

goa.c's Issues

简单入门golang-结构体和方法

“内置的数据类型切片 slice 和字典 map 都是引用类型,不需要任何额外操作,所以传递这两种类型作为函数参数,是比较危险的,开发的时候需要谨慎操作。”

这个地方貌似表达有问题,只有map在传参的时候是传地址,其他都是值拷贝,包括slice

勘误说明

由于我写文章之前都是先实现代码,然后代码有时候很长,要调试。

所以写文章的时候分析代码片段,有些细节就没考虑到,如果发现哪里不理解,或者细节不够,欢迎大家补充文档,比如将代码片段进一步拆细,或者可以补充一些知识如附录,说明,小故事,历史,以及图片啥的都可以(有些图我自己手画的)。

我很乐意合并大家的PR。

帮助更多人既学习Golang,又学习数据结构,是比介绍编程语言本身更有价值。

欢迎大家勘误。

大佬,你的每个excample我都去敲代码了,非常棒!不过链表的那个例子出了些问题

package main

import (
	"fmt"
)

type LinkNode struct {
	Data     int64
	NextNode *LinkNode
}

func main() {
	// 新的节点
	node := new(LinkNode)
	node.Data = 2
	// 新的节点
	node1 := new(LinkNode)
	node1.Data = 3
	node.NextNode = node1 // node1 链接到 node 节点上
	// 新的节点
	node2 := new(LinkNode)
	node2.Data = 4
	node1.NextNode = node2 // node2 链接到 node1 节点上
	// 按顺序打印数据
	nowNode := node
	for nowNode != nil {

		// 打印节点值
		fmt.Println(nowNode.Data)
		// 获取下一个节点
		nowNode = nowNode.NextNode

	}
	// 如果下一个节点为空,表示链表结束了

}

这样才会输出

2
3
4

工程应用实例

https://github.com/hunterhug/gocache/blob/master/README_ZH.md

该库使用了红黑树和最小堆数据结构。利用最小堆堆顶是最老的值,从而快速清洗过期值。可以认为是一个有过期时间的 K-V 本地内存数据库。

原理很简单:

一个 treeMap 用来保存 K-V,一个最小堆的完全树用来清洗过期 key。
官方的 map 不会缩容,treemap 的话不会占用多余空间。
开了个定时器惰性删除过期key,由于定时器每秒最多清除30个过期,可能不够实时,所以当客户端主动拿值时会进行实时删除key,参考的redis。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.