5

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

因此,有关在导出函数中使用的数据类型中支持结构切片(结构数组)的工作的任何想法

4

1 回答 1

0

我认为目前没有人从事 gomobile 切片接口实现。您可能想检查这个便利项目。

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.13bind模式下使用。只有一种适用于 iOS/Android 有效跨平台开发的 WORKING 解决方案。React 很好,但需要更多空间。真的很喜欢 Swift,但是移动应用程序中大约 40mb 的 lib deps 杀死了它。在我们的应用程序中使用它:https ://play.google.com/store/apps/details?id=com.lonje和即将发布的 iOS 版本:https ://apps.apple.com/us/app/lonje-anonymous-聊天视频/id1215525783

于 2019-10-31T17:47:30.987 回答