sau*_*abh 5 cross-platform go gomobile
在跨平台移动应用程序开发的过程中,我遇到了Golang,它具有一个GoMobile命令行工具,该工具可以生成语言绑定,从而可以从Java和Objective-C调用Go函数。但是,如此处所述,对导出的函数/方法中使用的类型有一些限制:https : //godoc.org/golang.org/x/mobile/cmd/gobind#hdr-Type_restrictions
因此,有关在导出函数中使用的数据类型中支持结构片(结构数组)的工作的任何构想
我认为目前没有人致力于 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
}
Run Code Online (Sandbox Code Playgroud)
对于线程,我通常在代码中添加互斥体。
我们共享我们的业务逻辑(我们可以从移动本机代码中移出的所有内容)并且它运行得非常完美。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-聊天视频/id1215525783