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

Golang 网络爬虫框架gocolly/colly 一

Golang 网络爬虫框架gocolly/colly 一 gocolly是用go实现的网络爬虫框架,目前在github上具有3400+星,名列go版爬虫程序榜首。gocolly快速优雅,在单核上每秒可以发起1K以上请求;以回调函数的形式提供了一组接口,可以实现任意类型的爬虫;依赖goquery库可以像jquery一样选择web元素。 gocolly的官方网站是http://go-colly.org/,提供了详细的文档和示例代码。安装colly: go get -u github.com/gocolly/colly/... 在代码中导入包: import "github.com/gocolly/colly" colly的主体是Collector对象,管理网络通信和负责在作业运行时执行附加的回掉...阅读全文

博文 2017-12-30 00:30:00 majianguo

Golang回调函数实例二则

1.定义 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 2.机制 定义一个回调函数 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者 当特定的事件或条件发生时,调用者使用函数指针调用回调函数对事件进行处理 例1.这是一个简单的回调例子,调用函数test时,调用真正的实现函数add package main import "fmt" type Callback func(x, y int) int // 提供一个接口,让外部去实现 func test(x, ...阅读全文

博文 2017-07-27 02:06:18 iCaptain

studygolang filter模块阅读小结

##Filter模块与Hanlder## Hanlder是一种已知类型的回调方法,由使用者提供,可以抽象出一个type func类型来接受这种方法 type HandlerFunc func(http.ResponseWriter, *http.Request) 然后给该方法添加一个方法用来在触发该方法的调用 func (f HandlerFunc) ServeHTTP(rw http.ResponseWriter, req *http.Request) { // 执行当前Route的FilterChain filterChain := CurrentRoute(req).FilterChain if filterChain != nil { ...阅读全文

golang之runtime.SetFinaliz

在实际的编程中,我们都希望每个对象释放时执行一个方法,在该方法内执行一些计数、释放或特定的要求,以往都是在对象指针置nil前调用一个特定的方法,golang提供了runtime.SetFinalizer函数,当GC准备释放对象时,会回调该函数指定的方法,非常方便和有效。 参考: Go 语言中手动内存管理 go语言之初始化的构造函数 Go和C如何共享内存资...阅读全文

Ware - 轻松创建中间件层

Ware https://github.com/futurespaceio/ware 核心功能源自[martini][1], 喝杯martini,轻松创建属于自己的中间层。 目前正在使用Ware,开发一个静态生成器[Space][2],快速、简单、插件化。 "喝杯martini,梦回太空“ 简单例子: package main import ( "log" "github.com/futurespaceio/ware" ) func main() { w := ware.New() w.Use(func(c ware.Contex...阅读全文

【互联网早报】2017.11.21

## 国内新闻 1. 支付宝内测版遭曝光:马上将支持用Face ID支付 http://tech.sina.com.cn/mobile/n/n/2017-11-21/doc-ifynwnty6206785.shtml 2. 360重组议案过关股东大会500亿元资产注入在即 http://tech.sina.com.cn/i/2017-11-21/doc-ifynwxum7806388.shtml 3. 华策影视讨回乐视2.48亿债权 新乐视文娱业务或盘活 http://tech.sina.com.cn/it/2017-11-21/doc-ifynwxum7806435.shtml ## 国际新闻 1. 无人驾驶货运卡车技术企业「图森...阅读全文

分享 | 百度网盘高速下载方法汇总

在线免安装类1、在度盘资源分享网址“baidu”后面加上 “wp” 两个字母 这个方法之前介绍过:【工具分享】两个关于度娘的工具,非常不错!能用多久天知道,目前是最简便好用的方法。特点:免登陆,免下载安装软件2、油猴脚本+IDM这个方法第一次下载要先安装一些插件,然后用下载软件就可以实现高速下载。之前也介绍过:你还在吐槽百度网盘的下载速度吗?那就来试试这个吧【视频】百度网盘如何实现高速下载教程特点:免登陆,第一次要麻烦一些,后面就快了。 这个方法也比较好用,稳定性也还不错。关键就是要找对合适的脚本,最笨的方法就是挨个试,如果不行了就换。安装软件类1、速盘https://www.speedpan.com/speedpan-free.html 这款软件采用了Aria2多线程下载,支持免登陆网盘账...阅读全文

博文 2019-07-19 23:32:42 永恒君的百宝箱

基于 MySQL 的 ID 生成器 idgo

idgo是一个利用MySQL批量生成ID的ID生成器, 主要有以下特点: * 每次通过事务批量取ID,性能较高,且不会对MySQL造成压力. * 当ID生成器服务崩溃后,可以继续生成有效ID,避免了ID回绕的风险. 业界已经有利于MySQL生成ID的方案,都是通过:

REPLACE INTO Tickets64 (stub) VALUES ('a');
SELECT LAST_INSERT_ID();
这种方式生成ID的弊端就是每生成一个ID都需要查询一下MySQL,当ID生成过快时会对MySQL造成很大的压力. 这正是我写这个lib库的原因...阅读全文

开源项目 2015-12-24 16:00:00 flike

golang版本的通用时间轮 Timewheel

一个通用的timewheel工具类 通用粗精度的timewheel,只启动一个timer,可监听任意多的到期时间,放入的用户数据可以是任何类型。 接口说明: 1. Start: 开始一个timewheel ; 2. SetCallback: 设置时间到期时的回调函数,回调函数中不可作过于耗时的操作,以免卡住timewheel的正常运行; 3. Add: 添加需要监控的对象,务必在Start调用后再调用此接口; 4. Stop: 停止此timewhee...阅读全文

Golang让协程交替输出

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 之前用Golang写过一篇关于下载的文章(https://my.oschina.net/90design/blog/1607131), 最后提到:如果新需求是同时下载,并且按循序下载,最近看到在论坛里有人又再问起,就想起来更新一下此问题。 开始 两个协程交替输出1-20 package main import "fmt" func main() { A := make(c...阅读全文

博文 2018-01-19 11:33:05 90design

Golang通过反射检测变量类型

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 简单的记录一下吧。 package main import ( "reflect" "fmt" "strings" ) type Foo struct { A int `tag1:"Tag1" tag2:"Second Tag"` B string } func main(){ f := Foo{A: 10, B: "Salutations"} fPtr := &f m ...阅读全文

博文 2018-01-23 10:33:06 90design

高效日志库 BLog4go Go

BLog4go 是高性能日志库。创新地使用“边解析边输出”方法进行日志输出,同时支持回调函数、日志淘汰和配置文件。可以解决高并发,调用日志函数频繁的情境下,日志库造成的性能问题。 ** 快速启动: **

package main

import (
    log "github.com/YoungPioneers/blog4go"
    "fmt"
    "os"
)

// optionally set user defined hook for logging
type MyHook struct {
    som...阅读全文

全面升级后的开源云盘不了解一下么?蓝眼云盘 2.0 发布

蓝眼云盘的 Github 地址,请随手点个 star,谢谢啦。 部分软件截图: 2018 年 1 月份的时候,蓝眼云盘 1.0 刚开发完毕,那时候一个 star 都没有。为了让自己的这个开源项目看起来像那么回事儿,我发第一篇文章, 经过一年时间的持续迭代,目前蓝眼云盘已经有了 600+的 star。 这次升级的关键词就是:更快,更人性化,更透明。更快是指后端重新梳理了架构,从而日志、异常、离线任务、配置文件等更加规范了,图片缩略图也增加了缓存功能,访问速度更快。更人性化是指增加了 UI 的安装向导,可以通过下一步,下一步的方式就配置好数据库和管理员账户。更透明是指增加了大盘监控,管理员可以非常直观的看到每天的 PV,UV 以及周环比日环比,文件占用空间等重要信息。 开源虽然不容易,但是看到大...阅读全文

博文 2019-01-08 23:34:45 李爽

Golang并发(四)- buffered channel 和 Worker Pools

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 Buffered channel 之前我们说的channel都是不带缓冲的,无论发送和接收都会导致阻塞。 缓冲Channel的特点是:只有当发送至缓冲区存满后导致阻塞, 接受也是如此。 创建方式: ch:= make(chan Type , capacity) capacity 容量, 当capacity = 0 时, 为无缓冲channel,通常省略而已。 packag...阅读全文

Golang全面深入系列

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 接口 1 - Golang interface接口全面理解(一) 2 - Golang interface接口全面理解(二) 并发 1 - 并发介绍 2 - Goroutine 3 - Channle 4 - 带缓冲的channle和工作池 5 - Select 6 - Mutex Defer和错误处理 1 - defer 2 - 错误处理 3 - 自定义错误 4 - p...阅读全文

博文 2018-03-13 18:33:07 90design

Golang学习[函数]

函数的结构如下 func(p mytype) funcname(q int)(r,s int){return 0,0} 函数有很多特点 多值返回 Go可以返回多值 延迟代码 在defer后指定函数会在退出的时候调用 func ReadWrite() bool { file.Open("fileName") defer file.Close() //.... } 变参 func myfunc(arg ...int){ } 回调 func callback(y int,f func(int)){ f(y) ...阅读全文

博文 2015-11-26 21:00:01 jingmiaowill

数据库管理丨10种不同的云开发数据库管理技巧

前言 数据好比互联网产品的“血液”,数据库的管理效率关乎一个产品甚至一项业务能否良好且高效地运转。在使用云开发时,如何通过云数据库来做好数据管理,为你的产品打通“任督二脉”?本文将介绍 10 种不同的云数据库管理小技巧,助各位开发者轻松玩转云开发数据库。 第一招 借助数据导入导出对接历史数据 在过往的业务开展过程中,会产生大量的数据,例如,不少业务会选择使用 MySQL 存储数据。随着业务发展,计数选型从传统模式变为了云开发魔术,应该如何完成传统数据迁移到云开发呢? 你可以在 MySQL 中,将数据导出为 CSV文件的格式,并使用云开发提供的文件导入的功能,一键导入历史数据。 类似的,如果你需要将云开发数据库导出到线下,进行离线数据分析,也可以使用云开发提供的数据导出能力,将所有数据导出到云...阅读全文

博文 2020-06-30 19:33:12 云开发CloudBase

真相:为何技术不如你的人加薪升职比你快

经常有小伙伴在我的公众号“程序视界”后台留言,对一种现象表示不理解:为什么技术并不是多好的人,加薪升职却比自己快? 有人说,这是因为这类人会溜须拍马伺候领导。 有人说,这是因为领导眼睛瘸了,看不出谁是真正能做事的人。 有人说,这是因为此人有背景,老板都不敢得罪他。 还有人说,此人说不定已被潜规则。 然而实际上,我们可能是被两个常见的思维错误给蒙蔽了。这两个思维错误是: 以己之长,比人之短 单一维度评估竞争力 大家都是有逻辑、有思维、有见识的聪明人,只要接下来咱们简要说几句,你就能理解这两个思维错误是怎么回事儿了。然后,咱们再介绍什么是更好的职场竞争策略。 (1) 以己之长比人之短 渴望加薪升职却又无法突破瓶颈的开发者,往往会拿着自己的技术长处,跟那些已经加薪升职的同事去比较,张三这块不如我,...阅读全文

on the go way (一)服务器并发

服务器并发的方式有很多种 1.通过多进程或者多线程的方式,现在这种模式基本上已经不用 2.epoll和IOCP回调的方式,不符合人们的习惯 3.使用协程(轻量级线程,创建、销毁的代价很小),协程在逻辑上上顺序执行 其中属于erlang和golang在协程并发方面做的比较好 package mainimport ( "fmt")func getResult(data []int, res chan int) { var sum int sum = 0 for _, v := range data { sum += v } res <- sum}func main() { var res = make(chan int) var data = []int{1, 2, 3, 4, 5, 6, 7,...阅读全文

博文 2016-03-22 11:00:06 OneDream

树莓派上编译 Go and 安装 Cow

PS:老Blog文章转移, 年代久远, 连接可能已失效. Cow 是不错的软件,相当好用,我在公司是直接把它挂到了服务器上,然后办公室的人都在用它。但是回到了家里我就无法用移动设备或者 PSP 之类的连接它了,我的电脑也不能一天 24 小时的在家中开机,碰巧这两天买了连个树莓派,上面运行的是专门定制过的 Debian Linux,我就想着是否能够使用它来运行 Cow。十分不幸的是,似乎作者的网站上并没有提供 ARM 设备的 Cow 版本,我尝试的下载了 Linux 32 位的版本,但是无法在树莓派上运行。所幸 Cow 是用 Go 语言写的,而 Go 支持 ARM,大不了自己编译 Cow。 我不知道是因为我的的问题还是因为什么奇怪的问题,树莓派的官方源里有 Golang,但是我安装之后却无法使...阅读全文

博文 2017-02-09 13:31:05 venmos

golang之runtime.SetFinaliz

在实际的编程中,我们都希望每个对象释放时执行一个方法,在该方法内执行一些计数、释放或特定的要求,以往都是在对象指针置nil前调用一个特定的方法,golang提供了runtime.SetFinalizer函数,当GC准备释放对象时,会回调该函数指定的方法,非常方便和有效。 不过值得注意的是,指针构成的 "循环引⽤" 加上 runtime.SetFinalizer 会导致内存泄露...阅读全文

博文 2017-02-07 03:56:40 henrylee2cn

GoLang回调实现,非传func参数方式

写这篇文章的初衷是因为最近被GoLang的一个低级问题搞蒙了,加上本蠢货用的还是IntelliJ的2017版本,对GoLang的错误提示非常有限,导致为了解决一个回调问题花了一个多小时。 问题呢,就是GoLang的回调了,在我的印象中GoLang实现回调和Java有那么一点区别,但是大同小异。首先如果是个简单的回调那么肯定没啥难度,传入一个struct对象就可以了,但是我想的是可以随时创建这个回调对象,在各种场合,那么就决定了这个回调对象可能是多个,所以必须是接口。 so,思路其实很清晰,回调参数使用接口就可以了,但是今天我被自己蠢到了,忘了GoLang的特性,首字母非大写是不能给外部包调用的,所以,一言难尽。 在解决问题的期间我不服气的搜了百度与google,发现搜出来的内容居然都是传入f...阅读全文

博文 2019-07-14 21:32:39 zerochl

Go语言事件系统

package main import "fmt" func main() { // 实例化一个角色 a := new(Actor) // 注册名为OnSkill的回调 RegisterEvent("OnSkill", a.OnEvent) // 再次在OnSkill上注册全局事件 RegisterEvent("OnSkill", GlobalEvent) // 调用事件,所有注册的同名函数都会被调用 CallEvent("OnSkill", 100) } // 声明角色的结构体 type Actor struct { } // 为角色添加一个事件处理函数 func (a *Actor) OnEvent(param interface{}) { fmt.Println("actor even...阅读全文

博文 2019-12-24 15:33:14 huang_he_87

在非同一文件情况下,结构体中的父类取不到

比如在a.go中写一个结构体, Base{id: int, age: int} , Student{ name: String, base: Base } ,然后新建一个main函数的maig.go,实例化结构体Student的时候base取不到,如果写 stu := Student{ name: "小明", base : Base{.....}} 这样也会报错,说找不到 field base, 这是怎么回事儿,和java好不一样,新手, 求指点 ...阅读全文

安装fabric hyperledger--by Skyh0625

hyperledger 是IBM的无币区块链,作为比较大联盟链项目,很多大公司都在研究,比如腾讯阿里,金融行业比如银行保险微众P2P企业等,作为杀手级应用,现在还没看很多,可能在信息存证,发票版权等项目有用上,炒区块链概念的外包公司也水涨船高,今天就重新再虚拟机上安装hyperledger(后面有精华) 1. 准备环境 首先我用的是Ubuntu18.04 LTS环境 这时就得用黑科技,通过ss方便实用,其它的就爱莫能助了 .bashrc写入 export http_proxy="http://192.168.157.1:1080" export https_proxy="http://192.168.157.1:1080" 安装go,官网推荐这样是最新版 sudo snap install ...阅读全文

博文 2019-06-26 00:32:42 skyh25

关于怎么实现type struct里的 回调函数 类型的实例

如果结构体内有一个 回调函数类型 ,那我该怎么实现这个类型的实例并打印输出值呢 ```go package main import "fmt" func main() { type PipeData struct { value int handler func(a int) int } //实现不了的部分⬇ var a PipeData fmt.Print(a.handler(2)) //实现不了的部分⬆ } ``...阅读全文

golang做成一个so静态库,供python调用, 我想实现golang这边网络收到数据后回调python的函数,但是总是提示不成功,相同的在c++可以成功. 高手帮我瞧瞧.

python部分如下: ``` def OnReceive(sockid, str_from_golang): print str_from_golang CCReceiveFUNC = CFUNCTYPE(None, c_int32, c_char_p) gReceiveFunc = CCReceiveFUNC(OnReceive) mydll = cdll.LoadLibrary lib = mydll("./basego.so") print gReceiveFunc lib.setCallbackFunc(gReceiveFunc) 用go的setCallbackFunc()来设置python的函数,作为回调函数 go部分: var...阅读全文

Golang GUI基础1 -- JSON格式化小工具

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 本人入门Golang的gui, 只是想做一些小的工具日常工作使用, 因为对Golang的热爱已经到了如痴如醉的地步。 开始今天的lxn/walk练习: package main import ( "encoding/json" "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) func main() {...阅读全文

博文 2018-01-09 10:33:04 90design

promise/future异步编程模型

文: http://labs.strava.com/blog/futures-in-golang/ promise/future是一个非常重要的异步编程模型,它可以让我们摆脱传统的回调陷阱,从而使用更加优雅、清晰的方式进行异步编程 package main import ( "net/http" "io/ioutil" "fmt" ) func main() { url := "http://www.google.com" future := Future(func() (interface{}, error) { resp, err := http.Get(url) if err != nil { return nil, err } defer resp.Body.Close() retu...阅读全文

博文 2019-06-11 18:02:44 清晨的麦田

golang协程池

const Max = 10000000 type GoroutinePoll struct { Queue chan func() error Total, Num int Result chan error FinishCallBack func() error } func (g *GoroutinePoll) Init(total int) { g.Total = total g.Queue = make(chan func() error, total) g.Result = make(chan error, total) } func (g *GoroutinePoll) SetFinishCallBack(f func() error) { g.FinishCallBack =...阅读全文

博文 2018-03-09 14:30:01 fwdqxl

beehive 源码阅读- go 语言的自动化机器

beehive Overview 看一下作者本人的注释 // Package bees is Beehive's central module system. beehive 非常有趣的在于各逻辑的解耦设计,这不仅让本身功能操作简单,也让扩展变得关注点少了很多,只需要一点学习成本就可以扩展自己的 beehive 首先解释一下 bee hive 中 的概念 bee 代表的是我们常见的 Worker 也就是说,实际的行为是由这些 小蜜蜂执行的。他们就类似于采蜜的工人,采集到了之后统一放回来处理 hive 是蜂房,也就是我们常见的 WorkerPool 不同的是,她更像一个 Facotry ,什么意思呢?她可以创建专属的 bee 。在极少的配置下,比如只需要配置上一个 token 即可。就可以生成...阅读全文

博文 2019-08-02 10:04:25 yhyddr

go 开发 寻求大神帮助

go怎么实现延迟任务执行 main函数执行后 直接退出了 在main函数里面是有select{}可以实现执行完后在退出 ,但是实际项目应用中肯定不能这样做,例如执行一个每20秒执行一个任务 应该怎么做func main() { //go timer1() //timer2() for i :=1; i <10 ; i++ { task :=&Task{i+1,"a",""} task.Start() } } type Task struct { delay int key string data string } func NewTask(delay int,key ,data string) *Task { task :=&Task{ delay:delay, key:key, data:...阅读全文

博文 2018-08-02 13:46:30 lemonsds

免费,开源的数字货币收款插件

虽然区块链蓬勃发展,但是程序员要在网站上支持数字货币收款依然非常困难。无论是比特币,还是eos都需要安装全节点软件才能比较稳定的做到查询收款服务。然而目前的区块链全节点都耗费大量硬盘空间和系统资源,仅仅为了为了数字货币收款进行投入是不划算的。 这里介绍一个收款插件。 优点: 无需依赖外部库,因为是go语言编写的。 无需外部数据库,默认数据库使用sqlite3,熟练工可以自己修改支持mysql和postgre。 开发者使用http请求就可以创建支付通道,查询支付状态。 收到支付有推送,方便编写业务代码。 无需安装复杂的比特币全节点,以太坊全节点,eos全节点就可以收款。 体积小巧 前期准备一 Mixin Messenger账户 中国大陆iOS和安卓用户前往该地址下载App并注册账户。 大陆以外...阅读全文

博文 2019-06-20 22:32:53 Mixin_Network

Go语言事件系统

package main import "fmt" func main() { // 实例化一个角色 a := new(Actor) // 注册名为OnSkill的回调 RegisterEvent("OnSkill", a.OnEvent) // 再次在OnSkill上注册全局事件 RegisterEvent("OnSkill", GlobalEvent) // 调用事件,所有注册的同名函数都会被调用 CallEvent("OnSkill", 100) } // 声明角色的结构体 type Actor struct { } // 为角色添加一个事件处理函数 func (a *Actor) OnEvent(param interface{}) { fmt.Println("actor even...阅读全文

博文 2019-12-23 20:33:12 huang_he_87

beehive 源码阅读- go 语言的自动化机器

beehive Overview 看一下作者本人的注释 // Package bees is Beehive's central module system. beehive 非常有趣的在于各逻辑的解耦设计,这不仅让本身功能操作简单,也让扩展变得关注点少了很多,只需要一点学习成本就可以扩展自己的 beehive 首先解释一下 bee hive 中 的概念 bee 代表的是我们常见的 Worker 也就是说,实际的行为是由这些 小蜜蜂执行的。他们就类似于采蜜的工人,采集到了之后统一放回来处理 hive 是蜂房,也就是我们常见的 WorkerPool 不同的是,她更像一个 Facotry ,什么意思呢?她可以创建专属的 bee 。在极少的配置下,比如只需要配置上一个 token 即可。就可以生成...阅读全文

博文 2019-08-01 13:32:38 yhyddr

go 回调函数 & 匿名函数

package main import "fmt" // go 回调函数 func main() { /* 匿名: 没有名字 匿名对象: 匿名函数: 函数没有名字 通常只能使用一次。 定义的时候直接使用 */ fun1 := func(a, b int) int { fmt.Println("a:", a, "b:", b) return a * b } res2 := oper(1, 2, fun1) fmt.Println(res2) // 3 } func oper(m, n int, fun func(int, int) int) int { return fun(1, 2) ...阅读全文

博文 2020-06-07 16:32:43 小兵

go 回调函数

package main import "fmt" // go 回调函数 func main() { /* 高阶函数: 根据go语言函数的数据类型的特点,可以将函数作为另一个函数的参数 fun1() fun2() 将fun1函数作为fun2函数的参数: fun2函数:高阶函数 接受一个函数作为参数的参数,叫做高阶函数 fun1函数:回调函数 作为另一个函数的参数的函数,叫回调函数 */ fmt.Printf("%T\n", add) //func(int, int) int fmt.Printf("%T\n", oper) //func(int, int, func(int, int) int) int res1 := add(1, 2) fmt.Println(res1) // 3 res...阅读全文

golang 多态

//多态 package main import "fmt" type Functype func(int, int) int//定义函数类型 func Calc(a int, b int, fun Functype) int { result := fun(a, b) //回调机制 return result } func Add(a, b int) int{ return a + b } func Munic(a, b int) int { return a - b } func Mult(a, b int) int { return a * b } func main() { result := Calc(3,6, Add) fmt.Println("result = ", resul...阅读全文

博文 2020-04-06 04:32:42 小麦客