go语言函数作为参数传递,目前给我的感觉几乎和C/C++一致。非常的灵活。

import "fmt"
import "time" func goFunc1(f func()) {
go f()
} func goFunc2(f func(interface{}), i interface{}) {
go f(i)
} func goFunc(f interface{}, args... interface{}) {
if len(args) > {
go f.(func(...interface{}))(args)
} else if len(args) == {
go f.(func(interface{}))(args[])
} else {
go f.(func())()
}
} func f1() {
fmt.Println("f1 done")
} func f2(i interface{}) {
fmt.Println("f2 done", i)
} func f3(args... interface{}) {
fmt.Println("f3 done", args)
} func main() {
goFunc1(f1)
goFunc2(f2, ) goFunc(f1)
goFunc(f2, "xxxx")
goFunc(f3, "hello", "world", , 3.14)
time.Sleep( * time.Second)
}

f1 done
f2 done 100
f1 done
f2 done xxxx
f3 done [[hello world 1 3.14]]

转自 http://blog.csdn.net/eclipser1987/article/details/11772539

go语言函数作为参数传递的更多相关文章

  1. go语言将函数作为参数传递

    Go语言函数作为参数传递,目前给我的感觉几乎和C/C++一致.非常的灵活. import "fmt" import "time" func goFunc1(f  ...

  2. C语言中如何将二维数组作为函数的参数传递

    今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...

  3. C语言中的参数传递

    有空看看: c语言 函数传输传递的三种方式(值.指针.引用) C语言之参数传递 C语言形参和实参,传值调用和引用调用的区别

  4. C#委托与C语言函数指针及函数指针数组

    C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...

  5. C语言函数指针基础

    本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础.如果你不讨厌事无巨细,请尽情阅读吧. 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具.本文将从C ...

  6. 深入剖析C/C++函数的参数传递机制

    2014-07-29 20:16 深入剖析C/C++函数的参数传递机制    C语言的函数入口参数,可以使用值传递和指针传递方式,C++又多了引用(reference)传递方式.引用传递方式在使用上类 ...

  7. Go语言函数

    目录 函数定义 函数返回多个值 函数参数 Go 语言函数值传递 Go语言函数引用传递 函数用法 函数作为值 匿名函数 闭包 方法 不定参数的函数 init函数 内建函数 函数调用机制 总结 函数定义 ...

  8. Go语言 函数,工程管理

    Go语言 函数,工程管理 1.无参无返回值函数的使用 package main import "fmt" func main() { // 无参无返回值函数的调用:函数名() fu ...

  9. 面向对象----构造方法、this 关键字、函数的参数传递、package语句/import语句

    构造方法 构造器的定义.作用 构造方法的特征 它具有与类相同的名称:它不含返回值: 注意:在构造方法里不含返回值的概念是不同于“void”的,在定义构造方法时加了“void”,结果这个方法就不再被自动 ...

随机推荐

  1. 隐马尔科夫模型(HMM)

    基本概念 1Markov Models 2Hidden Markov Models 3概率计算算法前向后向算法 1-3-1直接计算 1-3-2前向算法 1-3-3后向算法 4学习问题Baum-Welc ...

  2. [React] Implement a Higher Order Component with Render Props

    When making a reusable component, you'll find that people often like to have the API they're most fa ...

  3. Thrift 基础教程(一)安装篇

    1.Thrift简单介绍 Thrift是一款由Fackbook开发的可伸缩.跨语言的服务开发框架,该框架已经开源而且增加的Apache项目.Thrift主要功能是:通过自己定义的Interface D ...

  4. nyoj 1104 just for you

    just for you 时间限制:1000 ms  |  内存限制:65535 KB 难度:0 描写叙述 今天tlp和ly想去看电影了到了电影院才发现买票的人特别多 .ly不想让tlp等着急了,就先 ...

  5. 计蒜客第一场A

    #include <cstdio> #include <iostream> #include <cstring> using namespace std; char ...

  6. HIToj--1076--Ordered Fractions(水题)

    Ordered Fractions   Source : Unknown   Time limit : 3 sec   Memory limit : 32 M Submitted : 1510, Ac ...

  7. bean初始化、注销

    关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二 ...

  8. 生成不重复的随机数对(C/C++)

    1 #include <stdio.h> #include <algorithm> #include <stdlib.h> #include <time.h& ...

  9. netflix zuul 1.x与zuul2.x之比较

    1.zuul 1.x的架构如下所示: 线程模型: 其web应用的web.xml <?xml version="1.0" encoding="UTF-8"? ...

  10. 1sting

    You will be given a string which only contains ‘1’; You can merge two adjacent ‘1’ to be ‘2’, or lea ...