猿问

Go中是否有类似于C ++绑定的内容?

我正在尝试在Go中执行某些操作,类似于C ++的绑定。

在C ++中:


class A {

public:

    typedef std::function<bool(const string&)> Handler;

    bool func(A::Handler& handler) {

        // getData will get data from file at path

        auto data = getData(path);

        return handler(data);

    }

};

在另一个B类中:


Class B {

public:

    bool run() {

        using namespace std::placeholders;

        A::Handler handler = bind(&B::read, this, _1);

        m_A.initialize();

        return m_A.func(handler);

    }

    bool read(const string& data) {

        std::out << data << std::endl;

    }

private:

    A m_A {};

};

当B的run()函数被调用时,它将绑定用A的Handler读取的B类成员函数。然后m_A.func(hander)称为,它将调用getData()。然后将获得的数据解析为B::read(const string& data)


Go中有什么方法可以做到吗?如何在golang中创建转接呼叫包装器?


函数式编程
浏览 242回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答