GO语言一个配置文件加载、重载模板
也许你也会有我一样的困扰,开发了很多的GO语言程序,发现很多程序都需要一个配置文件,这有一个简单的配置文件解析、加载、重载模板…
……清風有情君意愜, 夢徊怡江詩心緣。~
也许你也会有我一样的困扰,开发了很多的GO语言程序,发现很多程序都需要一个配置文件,这有一个简单的配置文件解析、加载、重载模板…
……关于Cgo的相关类型描述,官网上有这么一段话:
The standard C numeric types are available under the names C.char, C.schar (signed char), C.uchar (unsigned char), C.short, C.ushort (unsigned short), C.int, C.uint (unsigned int), C.long, C.ulong (unsigned long), C.longlong (long long), C.ulonglong (unsigned long long), C.float, C.double, C.complexfloat (complex float), and C.complexdouble (complex double). The C type void* is represented by Go’s unsafe.Pointer. The C types __int128_t and __uint128_t are represented by [16]byte.
……网上有很多例子告诉你怎么从Go语言调用C语言的函数,但鲜少文章有告诉你,其实CGO开发中,还可以从C语言函数中,调用Go语言写的函数,而你只需要简单的加一个// export
注释就可以了。
最近有一个问题,是在golang作为底层,想获取apk的版本号和版本号代码(通俗一点就是versionName和versionCode),如果这时java代码,可以很容易地通过
|
|
来获取,但是,如果你的主要程序都是go语言来写,需要在go语言中获取apk的版本号怎么处理呢?
……研究的这个最主要原因是arm平台无法使用delve
工具无法在arm平台上使用,而现实中你的程序不可能没有bug,这时候查起问题来没有debug就太痛苦了~
现实情况是你所开发的程序有可能被意外地多次拉起,而使用文件锁的排他锁功能可以解决这个问题。
文件锁有几个好处:
使用起来也很简单,只需要指定一个lock文件,然后使用syscall.Flock()
去上锁和解锁即可。
govendor
govendor是go语言依赖管理工具,推荐使用 https://github.com/kardianos/govendor 这个版本。
|
|
第一次初始化的时候,只需要govendor init
命令行执行一下就可以了。
……它的使用起来就像nodejs的
yarn
或npm
包管理工具一样简单!
先来讲一下使用Go语言开发Android和iOS底层代码的好处:
libgojni.so
或<PKG>.framework
本文章介绍的内容:
android
和ios
GO语言代码你还在寻找类似于像C语言的#if defined
条件编译吗?
你的Go程序运行于多个平台上(如Linux和Windows),相同功能有着不同的实现,你知道怎么处理吗?
你的Go程序运行于多代产品上(如一代盒子,二代盒子),相同功能有着不同的实现,你知道怎么解决吗?
阅读本文章,对于解决以上的疑惑,一定有所帮助。
……