Golang - GoMobile工具,用于结构返回类型的跨平台切片

时间:2017-06-06 05:41:31

标签: go cross-platform gomobile

在跨平台移动应用程序开发的过程中,我遇到了Golang,它有一个GoMobile命令行工具,可以生成语言绑定,从而可以从Java和Objective-C调用Go函数。但是,对导出的函数/方法中使用的类型有一些限制,如下所述:https://godoc.org/golang.org/x/mobile/cmd/gobind#hdr-Type_restrictions

所以关于在导出函数中使用的数据类型中支持struct(struct of struct)切片的工作的任何想法

1 个答案:

答案 0 :(得分:0)

我认为目前没有人在gomobile slice接口实现上工作。 您可能要检查此便利项目。

https://github.com/scisci/go-mobile-collection

这是一个简单的示例,您可以在没有任何项目的情况下共享外部切片:

type MyType struct {
        Id       int64
        Name     string
}

var (
        items []MyType
)

func GetItemsCount() int {
        return len(items)
}

func GetItem(i int) *MyItem {
        if i >= 0 && i < len(items) {
                return &items[i]
        }
        return nil
}

对于线程,我通常在代码中添加互斥锁。

我们共享我们的业务逻辑(所有我们可以从移动本机代码中删除的东西),并且它运行完美。 在gomobile 1.13模式下使用bind。仅一个有效的iOS / Android跨平台开发工作解决方案。 React很好,但占用更多空间。 确实像Swift,但是在移动应用中大约40mb的lib杀死了它。在我们的应用程序https://play.google.com/store/apps/details?id=com.lonje和即将发布的iOS版本:https://apps.apple.com/us/app/lonje-anonymous-chat-video/id1215525783

中使用它