Go语言中文网 为您找到相关结果 37

beego orm 多个字段过滤的问题

原因是这样子的: 现在有两个字段,年份(year),和学期(term) beego的orm现在支持单独一个字段的过滤,例如2013年~2015年: ``` tmp := map[string]interface{} o := orm.NewOrm() qs := o.QueryTable("table").Filter("year__gte", 2013).Filter("year__lte", 2015).All(&tmp) ``` 如上可以得到年份的区间。 可是我的需求是多个字段过滤,例如2013年2学期~2015年1学期 用sql语句可以表示为: ``` var sql string = "select * from table where yea...阅读全文

写了这么久的Java,你的代码符合规范吗,测测便知

无规矩不成方圆,无规范不能协作。近万名阿里Java技术精英的经验总结,并经历了多次大规模一线实战检验及完善,铸就了高含金量的《阿里巴巴Java开发手册》,并向业界开放。 该手册以Java开发者为中心视角,划分为编程规约、异常日志规约、MYSQL规约、工程规约、安全规约五大块,再根据内容特征,细分成若干二级子目录。根据约束力强弱和故障敏感性,规约依次分为强制、推荐、参考三大类。此套规范不仅能让代码一目了然,更有助于加强团队分工与合作、真正提升效率。 「阿里巴巴编码规范」认证 阿里云大学携手手册项目组,推出「阿里巴巴编码规范」认证,通过50道题目,来检测你的编码习惯与《阿里巴巴Java开发手册》有哪些异同之处。考试通过还将发放阿里云大学官方认证——「阿里巴巴编码规范」。学习、考...阅读全文

想知道你的代码符合规范吗,测测便知

无规矩不成方圆,无规范不能协作。近万名阿里Java技术精英的经验总结,并经历了多次大规模一线实战检验及完善,铸就了高含金量的《阿里巴巴Java开发手册》,并向业界开放。 该手册以Java开发者为中心视角,划分为编程规约、异常日志规约、MYSQL规约、工程规约、安全规约五大块,再根据内容特征,细分成若干二级子目录。根据约束力强弱和故障敏感性,规约依次分为强制、推荐、参考三大类。此套规范不仅能让代码一目了然,更有助于加强团队分工与合作、真正提升效率。 「阿里巴巴编码规范」认证 阿里云大学携手手册项目组,推出「阿里巴巴编码规范」认证,通过50道题目,来检测你的编码习惯与《阿里巴巴Java开发手册》有哪些异同之处。考试通过还将发放阿里云大学官方认证——「阿里巴巴编码规范」。学习、考...阅读全文

RETE算法的描述(原创)

通过一周左右的研究,对规则引擎有了一定的了解。现在写点东西跟大家一起交流,本文主要针对RETE算法进行描述。我的文笔不太好,如果有什么没讲明白的或是说错的地方,请给我留言。 首先申明,我的帖子借鉴了网上很流行的一篇帖子,好像是来自CSDN;还有一点,我不想做太多的名词解释,因为我也不是个研究很深的人,定义的不好怕被笑话。 好现在我们开始。 首先介绍一些网上对于规则引擎比较好的帖子。 1、 来自JAVA视频网 http://forum.javaeye.com/viewtopic.php?t=7803&postdays=0&postorder=asc&start=0 2、 RETE算法的最原始的描述,我不知道在哪里找到的,想要的人可以留下E-mail 3、 CMU的一位博士生的毕业论文,个人觉得...阅读全文

博文 2017-11-29 01:46:33 ipointer

golang操作mongodb

开发十年,就只剩下这套Java开发体系了 >>> 1、要安装mongodb数据库,2、要下载golang的mgo包,3、连接操作 package main import ( "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" "fmt" ) const URL = "192.168.1.83:27017" //mongodb的地址 func main() { session, err := mgo.Dial(URL) //连接服务器 if err != nil { panic(err) } c := session.DB("ChatRoom").C("account") //选择ChatRoom库的account表 c.Insert(map[string]int...阅读全文

博文 2018-09-23 00:33:09 别人说我名字很长

GoLang练习实例100之003----完全平方数

package main import ( "fmt" ) //题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少 func main() { for i :=1; i<=85; i++{ if 168 % i==0{ j := 168 / i if (i>j) && ((i + j) % 2==0) && ((i - j) % 2 == 0){ //m := (i + j) / 2 n := (i - j) / 2 x := n * n - 100 fmt.Printf("符合条件的整数有:%s\n",x) } } } ...阅读全文

博文 2018-03-20 22:33:04 不折腾难受斯基

golang操作mongodb

1、要安装mongodb数据库,2、要下载golang的mgo包,3、连接操作 package main import ( "gopkg.in/mgo.v2" "gopkg.in/mgo.v2/bson" "fmt" ) const URL = "192.168.1.83:27017" //mongodb的地址 func main() { session, err := mgo.Dial(URL) //连接服务器 if err != nil { panic(err) } c := session.DB("ChatRoom").C("account") //选择ChatRoom库的account表 c.Insert(map[string]interface{}{"id": 7, "name":...阅读全文

博文 2015-07-30 18:00:02 别人说我名字很长

Restful API规范详解

Restful API是目前比较成熟的一套互联网应用程序的API设计理念,Rest是一组架构约束条件和原则,如何Rest约束条件和原则的架构,我们就称为Restful架构,Restful架构具有结构清晰、符合标准、易于理解以及扩展方便等特点,受到越来越多网站的采用! Restful API接口规范包括以下部分: **一、协议** API与用户的通信协议,总是使用HTTPs协议。 **二、域名** 应该尽量将API部署在专用域名之下,如https://api.oldboyedu.com;如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下,如https://oldboyedu.com/api/。 **三、版本** 可以将版本号放在HTTP头信息中,...阅读全文

快速排序算法 原理及golang语言实现

设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面, 所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;、 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换; 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换; 5)重复第3、4...阅读全文

博文 2016-04-22 01:00:18 zhaoguoguang

ECMAScript标准介绍

历史 ECMAScript标准建立在一些原本的技术上,最为著名是Javascript和JScript,而在第一版本到第二版本则是变更了编辑性质,在第三版引入了强大的正则表达式,更加的字符串处理,新的控制语句,try/carth异常处理,更严谨的错误定义,格式化的数字输出以及一些为国际化和未来语言成长预留的小的变更,第四版本因为某些原因流产,第五版本纸面化了很多事实已经在浏览器上形成的共识的语言规范解析并且增加了对自第三版发布以来的新功能的支持,包括访问器属性,反射创建以及对象检测,属性特效的程序控制,新增的数组操作函数,JSON对象编码格式,以及提供了改进的错误检查以及程序安全性的严格模式。 范围 ECMAScript标准定义了ECMAScript脚本语言的范围 一致性 符合标准的ECMAS...阅读全文

什么是网站推广?网站推广的重要性

网站推广是一个老生常谈的话题了,很多人为了提高自己网站的推广效果,还专门的去学习网站推广课程。像现在很多企业也是外聘或者外包找人来专门做自己企业网站的推广,但是效果并不理想,没有能够为自己的企业带来更多的效益。 做网站推广可以说是一门学问,也可以说是一门技术。但是你如果去问资深的站长,他们只会告诉你做网站推广其实全凭经验和积累,没有什么快速方法可以讲。做网站推广,你不单只要有方法,还要有灵活的思维,不能听到这个说,这样好,就这样做,要符合实际。像有一些网站全凭外链做出来的效果,人家也是成功的。所以说做网站推广部能操之过急,要一步步做,这样你才能做出稳健的根基,不怕通过某种快速的方法突然之间暴涨,过后就萎靡不振了,这样对于你个人和网站而言都会受到影响,个人而言会打击自己做...阅读全文

关于golang的接口的几个问题,求解

type Message interface { Say() Do() } type BaseMessage byte func (this *BaseMessage) Say() { fmt.Println("say something ...") } type MyMessage struct { content string } func (this *MyMmessage) Do() { fmt.Println("do something ....") } var _ Message = (*MyMessage)(nil) //这句没有理解 //还有MyMessage能够继承BaseMessage的Say方法吗? //...阅读全文

Go语言实现工时计算

package main import "flag" import "fmt" import "bufio" import "os" import "strconv" import "strings" var infile *string = flag.String("i", "before.txt", "Work hours to convert") var outfile *string = flag.String("o", "after.txt", "Work hours converted") // 声明一个变量,用来临时记录新一行的数据 var newLine string // 声明一个slice,用他来保存所有新行数据 var newLines []string /** * 请...阅读全文

博文 2016-05-05 09:00:00 ithouse

IRISnet发起币安DEX上币提案,助力赢50,000 IRIS大奖!

​ 致IRISnet社区成员:我们很高兴地宣布IRISnet(IRIS)现已正式在币安DEX提案并已生效。希望大家来支持本次的上币提案!IRIS Hub 是一个跨链服务枢纽,目前我们已经发布了链接IRIS Hub与币安链(DEX)的网关,并即将在Rainbow 钱包支持通过这个网关的实现双向转账。未来当在IBC(跨链通信协议)启动后,我们计划将此网关转变为IBC的中继。我们相信,IRIS Hub与DEX的整合可以为跨链生态系统带来许多创新机会。详情请看:我们为什么要链接IRIS Hub和币安DEX?但现在目前仅仅是进行了提案,所以我们需要你的帮助!下一步币安链的验证人将对提案进行投票。IRISnet和币安链的验证人们都期待看到我们社区在币安提案贴下的活跃参与,他们尤其关注投票数、回复和浏览量...阅读全文

博文 2019-10-18 10:33:02 aside section ._1OhGeD

静态类型语言和动态类型语言的关于类型的思考

类别:符合条件的对象集。 动态语言不关心对象形成的过程,满足条件即认为是同一类别的对象。 静态语言认为同一类别的对象必须是靠继承得到的类创建的。 静态语言可以靠接口来部分实现上述动态语言的特性,但是一个已经被创建了的对象,即便符合接口定义,但是类因为没有显示声明也无法传入一个以该接口为参数的函数中。因此你要在类那里再加一个实现某接口,于是便有了 class A 继承B 实现接口C{ } 这样的类了。(不过golang的接口则不需要这样的显式声明,我想他们可能意识到了这点) 这里有一个很重要的点就是,你是后发现原来这个对象就属于那个类别的。这个对象可能是后面慢慢形成的。但是当你发现这个事实后再去补上这个类实现了某接口。有点违背当初的设计,因为当初是设计有目的的实现接口的,不是后发现原来符合条件...阅读全文

车流量 Restful API

RESTful是什么 RESTful,是目前最为流行的一种互联网软件架构。因为它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。学习RESTful,首先要学习REST。 REST 资源(Resources) REST是"表现层状态转化",其实REST省略了主语。"表现层"其实指的是"资源"的"表现层"。一张图片、一个文档、一个视频等。这些资源我们通过URI来定位,也就是一个URI表示一个资源。 表现层(Representation)资源是做一个具体的实体信息,他可以有多种的展现方式。例如一个txt文本信息,他可以输出成html、json、xml等格式,一个图片他可以jpg、png等方式展现URI确定一个资源,但是如何确定它的具体表现形式呢?应该在HTTP请求的头信息中用...阅读全文

博文 2017-07-05 02:06:21 SodaSea

新手求教一个关于slice的问题

小弟最近刚刚开始学GO语言,正在Leetcoding上刷题,今天刷一道Combinations题时遇到了困难。 ![微信图片_20171102213523.png](https://static.studygolang.com/171102/86f1faf873ca94578d7bed63ed5605ef.png) 我的输出定义是二维slice`var result [][]int` 另外定义了stack来寻找符合条件的单维数组`stack := make([]int, 0, k)` 如果stack符合条件就附加入result中,`result = append(result, stack)` 每次执行append都做一次输出,但是输出的结果是 !...阅读全文

问: 开源go项目时,是否应该忽略vendor目录?

原由是发现有的开源项目,推送`Gopkg.lock`和`Gopkg.toml`(如用`dep`来作为依赖的管理)的同时,也推送`vendor/`整个目录下的代码? 个人觉得没有必要,目前忽略了整个`vendor/`目录,小弟项目地址:[https://github.com/qclaogui/goforum](https://github.com/qclaogui/goforum), 也是更想符合标准一...阅读全文

javascript:history.go()和History.back()的区别(转载)

自:http://www.mikebai.com/Article/2009-11/757.html <input type=button value=刷新 onclick="window.location.reload()"> <input type=button value=前进 onclick="window.history.go(1)"> <input type=button value=后退 onclick="window.history.go(-1)"> <input type=button value=前进 onclick="window.history.forward()"> <input type=button value=后退 onclick="window.history...阅读全文

博文 2016-09-12 03:00:01 Click_Love

zip文件上传解析问题

现在有个需求,服务端需要对上传的的文件进行解析,对于没有包含指定文件夹的zip,需要报错!符合规范的就保存简单的说,如何在不保存上传过来的zip文件的同时,分析文件结构func (p *FileStruct) ValidFile() error { contentType := p.File.Header.Get("Content-Type") if contentType != "application/zip" { return fmt.Errorf("请上传zip资源包") } //下面一行有问题,因为获取到的只是文件的名字,读不到文件,这个是主要的问题 r, err := zip.OpenReader(p.File.Filename) if err != nil { return f...阅读全文

博文 2017-11-22 10:48:43 playboy307

go指针与C++指针用法不同,按哪个语言的用法用指针,请问如何抉择?

```go func abc(){ a := 1 p := &a return p } ``` 以上在go中可以返回局部指针,而c++不可以,而在go中,这样从局部返回指针,是否符合规范 ```go package main import "fmt" var p *int func abc2(){ var a=1 p=&a } func main() { abc2() fmt.Println(*p) //输出:1 fmt.Println(*p) //仍然输出:1 } ``` c++中,以上函数abc2()在执行完后,p会成为悬垂指针,而go中正常,在go中,这样是否也规范? c++不行的,go中正常,现在感觉思...阅读全文

Go语言暴力入门2-工欲善其事

工欲善其事-打造漂亮的Go语言编辑器 关于作者 程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是永不停息的追求。2017.05.04开始在空闲时间学习Go语言 个人网站:http://www.linganmin.cn 最近刚写了一个手机在线播放的H5电影站:http://www.ifilm.ltd 关于Gogland Gogland 是JetBrains专门为Go语言开发的商业化IDE的代号,旨在为Go开发提供符合人体工程学的环境。新的IDE通过针对Go语言的编码协助和工具集成扩展了IntelliJ平台的诸多功能 目前Gogland还在开发中,已经发布了几版预发行版本,因为是预览版本所以,目前...阅读全文

博文 2017-05-08 14:00:41 安小下

golang goscws中文分词

## golang goscws中文分词 scws是一个很好的中文分词库,由于项目中用到scws分词但go语言没有很好用的绑定,于是就自己 写了goscws,并且他支持协程分词。 ## 例子: 根据 SendText 设定的文本内容,返回一系列切好的词汇 ``` gs := goscws.NewScws() gs.SetCharset("utf8") err := gs.SetDict("/usr/local/scws/etc/dict.utf8.xdb", goscws.SCWS_XDICT_MEM) if err != nil { log.Println(err) } err = gs.SetRule("/usr/local/scws/etc/rules.utf8.ini") if er...阅读全文

sliceutil 数组操作工具

<https://github.com/issue9/sliceutil> sliceutil 提供了针对数组和切片的功能 - Reverse 反转数组中的元素; - Delete 删除符合条件的切片元素; - QuickDelete 删除符合条件的切片元素,性能稍高于 Delete; - Count 统计数组或切片中包含指定什的数量; - Dup 查看数组或切片中是否包含重得的值; - Contains 判断一个数组或是切片是否包含了另一个的所有元素...阅读全文

filebeat的“too many open files”的排查

现象 filebeat的日志中出现 2019-04-23T14:28:30.304+0800 WARN transport/tcp.go:36 DNS lookup failure "systemlog-collect-2.novalocal": lookup systemlog-collect-2.novalocal: too many open files 2019-04-23T14:28:39.689+0800 ERROR pipeline/output.go:74 Failed to connect: lookup systemlog-collect-1.novalocal: too many open files 查看设置的max open files 进程的(最终以这个为准): ...阅读全文

博文 2019-04-24 01:34:41 Kinvo

业务总结

业务笔记 在数据库中存表情 https://www.zhihu.com/question/21873949 什么时候选择前后分离,什么时候选择数据绑定? 通常我们经常说前后分离比数据硬绑定来得优雅,来的方便,however,不同的方式有不同的业务需求。 举个例子:对于app的个人用户界面,如果采用前后分离调接口的方式,那么会出现界面加载完毕,而数据后加载,也就是说:我本身已经登录了这个app,在下拉后有短时间的==请登录==三个字停留,这样用户体验是相当不好的,至少用户对你这个系统的稳定性、公司的稳定性和安全性产生了怀疑,让用户抱着怀疑的态度用你的产品,如果你的产品不是特别刚需和具有独特性,可能你就宣布GG了。 举例二:比如你的文章列表和文章界面使用了前后分离,即使是数据后显示出来,这样也是...阅读全文

博文 2017-09-06 15:34:47 yulibaozicom

以太坊源码分析:共识(3)Ethash

前言 Ethash实现了PoW,PoW的精妙在于通过一个随机数确定,矿工确实做了大量的工作,并且是没有办法作弊的。接下来将介绍: Ethash的挖矿本质。 Ethash是如何挖矿的。 如何验证Ethash的随机数。 Ethash的挖矿本质 挖矿的本质是找到一个随机数,证明自己做了很多工作(计算)。在Ethash中,该随机数称为Nonce,它需要满足一个公式: Rand(hash, nonce) ≤ MaxValue / Difficulty 其中, hash:去除区块头中Nonce、MixDigest生成的哈希值,见HashNoNonce()。 nonce:待寻找的符合条件的随机数。 MaxValue:固定值2^256,生成的哈希值的最大取值。 Difficulty:挖矿难度。 Rand()...阅读全文

博文 2018-11-17 13:34:43 大彬

golang regexp记录

FindAllSubmatch与FindSubmatch区别 // 匹配一个非元音字母,一个元音字母,一个非元音字母 someRegex, _ := regexp.Compile(`[^aouiye]([aouiye])([^aouiye])?`) m1 := someRegex.FindAllStringSubmatch("somestri", -1) m2 := someRegex.FindStringSubmatch("somestri") fmt.Println(m1) fmt.Println(m2) //result: [[som o m] [ri i ]] [som o m] re2, _ := regexp.Compile("am(.*)lang(.*)") //查找Subma...阅读全文

博文 2018-07-02 21:35:46 暮色伊人

golang goquery selector(选择器) 示例大全

本文为原创文章,转载注明出处,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续精彩文章。觉得好的话,顺手分享到朋友圈吧,感谢支持。 最近研究Go爬虫相关的知识,使用到goquery这个库比较多,尤其是对爬取到的HTML进行选择和查找匹配的内容时,goquery的选择器使用尤其多,而且还有很多不常用但又很有用的选择器,这里总结下,以供参考。 如果大家以前做过前端开发,对jquery不会陌生,goquery类似jquery,它是jquery的go版本实现。使用它,可以很方便的对HTML进行处理。 基于HTML Element 元素的选择器这个比较简单,就是基于a,p等这些HTML的基本元素进行选择,这种直接使用Element名称作为选...阅读全文

grin 之 Cuckoo Cycle 算法挖矿分析

Cuckoo Cycle 算法 作者:John Tromp c++: github: https://github.com/tromp/cuckoo golang: https://github.com/AidosKuneen/cuckoo 解决的问题:给出N个节点(奇偶两行)和M个边,在M个边中寻找一个闭环(即找到一个路径使得一个节点是起点也是终点)如图中的0-5-4-1-0: image.png 8个节点6个边 一个解决方案 特点:即时验证,内存需求可扩展(可抵抗asic) grin中挖矿过程 两种算法:Cuck(ar|at)oo cycle (抗asic | 对asic友好) (edg_bits : 29|31+) solution 环型长度 都是42 hash1=black2b(he...阅读全文

0862_和至少为K的最短子数组

0862_和至少为 K 的最短子数组 题目描述 返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。 如果没有和至少为 K 的非空子数组,返回 -1 。 示例1: 输入:A = [1], K = 1 输出:1 示例2: 输入:A = [1,2], K = 4 输出:-1 示例3: 输入:A = [2,-1,2], K = 3 输出:3 Note: 1. 1 <= A.length <= 50000 2. -10 ^ 5 <= A[i] <= 10 ^ 5 3. 1 <= K <= 10 ^ 9 暴力算法 func shortestSubarray(A []int, K int) int { minLen := 50001 tail := len(A) - 1 for i := ...阅读全文

博文 2018-09-01 12:35:03 TomorrowWu

LeetCode算法系列_0862_和至少为K的最短子数组

0862_和至少为 K 的最短子数组 题目描述 返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。 如果没有和至少为 K 的非空子数组,返回 -1 。 示例1: 输入:A = [1], K = 1 输出:1 示例2: 输入:A = [1,2], K = 4 输出:-1 示例3: 输入:A = [2,-1,2], K = 3 输出:3 Note: 1. 1 <= A.length <= 50000 2. -10 ^ 5 <= A[i] <= 10 ^ 5 3. 1 <= K <= 10 ^ 9 暴力算法 func shortestSubarray(A []int, K int) int { minLen := 50001 tail := len(A) - 1 for i := ...阅读全文

博文 2018-09-01 11:35:03 tomorrowwu

Docker Swarm代码分析笔记(16)——Node结构体

Docker Swarm的scheduler会选择符合要求的node来创建container: candidates, err := s.selectNodesForContainer(nodes, config, true) node定义在scheduler/node/node.go: // Node is an abstract type used by the scheduler. type Node struct { ID string IP string Addr string Name string Labels map[string]string Containers cluster.Containers Images []*cluster.Image UsedMemory i...阅读全文

博文 2017-06-25 14:02:45 肖楠

按量付费实例批量更改实例带宽

摘要: 为了满足按量付费的灵活性,我们开放了批量的更改网络带宽,近期还将发布更改实例规格的功能。 如何更改按量付费实例的带宽 控制台 1.登陆控制台后进入实例列表,勾选要更改带宽的实例。在批量操作栏中更多操作项中点击更改带宽;或在指定实例更多操作项中点击更改带宽。 image image 2.批量更改带宽时,如果选择了多种带宽付费类型的实例,需要先确认本次期望修改的带宽付费类型是按使用流量或按固定带宽,选择带宽付费类型后,会检测用户勾选的实例,符合条件的实例会显示出当前带宽的付费类型以及带宽值,如果实例不符合条件会将其丢入不可操作列表并说明原因。 image image 3.点击批量更改按钮设置期望的带宽值,点击确定后会在**更改带宽**列显示期望的带宽值。检查无误...阅读全文

两数之和

计划从这周开始,每周刷一道leetcode,目的在于练习基础算法,同时每次强制用golang实现,以此达到学习golang的目的。由于刚开始,所以这一题也比较简单。 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 实现思路: 从前往后遍历数组,每次那当前数组和后面所有的数字进行相加比较,如果符合条件,返回两数索引。 这里贴一下java实现 public stat...阅读全文

博文 2019-06-16 20:32:44 杨比轩

Go语言实现的Java Stream API

学习Go语言时实现的集合操作工具库,类似于Java 8 中新增的Stream API。由于Go语言不支持泛型,所以基于反射实现。只用于学习目的,不要用于生产(PS:当然也不会有人用)。 项目地址:https://github.com/tk103331/s... 集合操作包括生成操作、中间操作和终止操作。生成操作返回值是Steam对象,相当于数据的源头,可以调用Stream的其他方法;中间操作返回值是Stream对象,可以继续调用Stream的方法,即可以链式调用方法;终止操作不能继续调用方法。 下面介绍下这个库的API: 数据准备后面的操作都是基于集合数据的,先准备一些测试数据。 type student struct { id int name string ageint scores [...阅读全文

博文 2019-09-05 10:02:41 tk103331