`

Go回调函数示例

 
阅读更多

http://golanghome.com/post/103

原博客地址:http://my.oschina.net/kuerant/blog/202703

package main

import (
    "fmt"
    "strconv"
)

//声明一个saveLog类型,这个类型其实表示一个函数定义
type saveLog func(msg string)

//这个函数的第二个参数是一个函数
//这个函数将一个字符串转换为Int类型,如果失败了,则返回0,并输出错误。
func stringToInt(s string, log saveLog) int64 {
    if value, err := strconv.ParseInt(s, 0, 0); err != nil {
        log(err.Error())
        return 0
    } else {
        return value
    }
}

//记录日志的函数实现
func myLog(msg string) {
    fmt.Println("Find error:", msg)
}

//在调用第二个stringToInt的时候会发生运行时的错误输出
func main() {
    stringToInt("123", myLog)
    stringToInt("s", myLog)
}

 

 

运行结果为:

$ go build func_callback.go
$ ./func_callback
Find error: strconv.ParseInt: parsing "s": invalid syntax

分享到:
评论

相关推荐

    SignalR 2.0 and MVC 5即时通讯完整版示例

    以下代码显示了如何在脚本中创建回调函数。服务器上的集线器类调用此函数将内容更新推送到每个客户端。对htmlEncode函数的可选调用显示了一种在将消息内容显示在页面中之前对其进行HTML编码的方法,以防止脚本注入。...

    Go的另一个CLI框架。 它可以在我的机器上工作。-Golang开发

    命令行界面框架用于快速命令行应用程序开发的Go框架。 示例包主要导入“ gopkg.in/ukautz/clif.v1” func main(){clif.New...Run()}示例安装入门命令回调函数命名的默认对象参数和选项参数选项标志验证&(Parsin

    godirwalk:Golang的快速目录遍历

    godirwalk godirwalk是用于遍历文件系统上的目录树的库。 简而言之,为什么要使用这个库?... 但是,在调用提供的回调函数时,它始终提供使用正确的os-specific路径分隔符创建的路径名。 dirname := "some/

    基于go语言的定时脚本任务.zip

    基于go语言的定时脚本任务.zip 示例代码 package xz_crontab import ( "context" "log" "testing" "time" ) func Test_crontab(t *testing.T) { jobs := []Job{ { Name: "test", Par: "1", //...

    node.js利用mongoose获取mongodb数据的格式化问题详解

    大家都知道在mongodb 中获取数据,不管使用回调函数还是Promise又或者generate 语法最后得到都是mongoose.Query对象,不能直接操作如同普通对象一样得到单行数据。还有就是时间格式化问题,见下面。 下面示例默认...

    RxGo:Go语言的React性扩展

    ReactiveX是一种新的异步编程方法,可以替代回调,promise和deferd。 它与处理事件或项目流有关,事件是系统中的任何发生或更改。 事件流称为 。 运算符是一个函数,它定义一个Observable,如何以及何时发出数据。 ...

    MongoDB数据库forEach循环遍历用法

    采用foreach循环遍历,并每次循环允许执行一次回调函数。 此外,foreach循环遍历是for循环的一种扩展,对比同浏览器端的forEach用法是一致的。 示例如下: >var arr = [ab,cd,ef] >var show = function(value,index,...

    glow:用于OpenGL的绑定生成器

    支持扩展(包括调试回调)。 支持重载以为Go函数提供不同的参数签名。 请参阅以获取有关当前实施状态的警告。生成的包生成的OpenGL绑定包可在存储库中找到。超载有关示例,请参见子目录xml/overload 。 这里的动机...

    asp.net知识库

    Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0...

    用于学习测试的神经网络ea.mq4

    这一点是非常必要的,因为一个基于趋势的交易系统是不能成功交易在盘整(sideways trends),也不能识别市场的回调(setbacks)和逆转(reversals.,反向走势)!当然,你可以采用两个ATS,一个基于“趋势”,一个基于“反...

    Java学习笔记-个人整理的

    {7.2}回调模式与FileFilter}{104}{section.7.2} {7.3}\ttfamily RandomAccessFile}{106}{section.7.3} {7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的序列化}{109}{section.7.5} {7.6}InputStream...

Global site tag (gtag.js) - Google Analytics