我刚刚看到了Go编程语言的演示文稿,并认为我试着写几行.一切正常,直到我尝试在这种情况下使用接口.我该如何解决这个问题?
package main
import "fmt"
type entity float32
func (e *entity) inc() {
*e++
}
type incer interface {
inc()
}
func doSomething(i incer) {
i.inc()
}
func main() {
fmt.Println("Hello, ??")
var e entity = 3
e.inc()
doSomething(e)
fmt.Println(e)
}
Run Code Online (Sandbox Code Playgroud)
我收到编译器错误:
prog.go:24: cannot use e (type entity) as type incer in function argument:
entity does not implement incer (inc method requires pointer receiver)
Run Code Online (Sandbox Code Playgroud)
我想使用指针,以便inc()将影响函数外部的enity.我应该使用什么语法?
/瑞奇
我正在编写一个需要在iOS,Android,Windows Phone,WPF,Windows 8 Metro,Linux和Mac上运行的应用程序.我在跨平台领域拥有大约95%的代码,但是UI和一些事情显然需要针对每个平台进行专门编码.
现在,我们需要在应用程序中添加一些非常简单的数据库支持,我很乐意在我的代码中从跨平台领域对抗Sqlite.这可以用任何现有的Sqlite包装器完成,还是我需要创建自己的?或者我应该使用几个具有相同语法的Sqlite包装器,并且只引用不同csproj文件(每个平台)中的不同库?
我读过这个Q/A 是否有针对SQLite的.NET/C#包装器?但经过一个小时的阅读后,我仍然不确定如何在所有平台上运行,所以我认为有人可能会在我面前考虑这些事情.
是否有可能使Objectify在我的pojos/beans中使用我的getter和setter?我已经调试过,即使我的字段是私有的,而且我已正确命名,公共getter和setter,它们从未使用过.Objectify似乎只是直接读取和写入私有字段.
这使得很多事情比他们需要的更难,特别是当我想要声明为final的集合时,因为我不想一直创建新的ArrayLists等.
那么,是否有可能让Objectify使用我的吸气剂和制定者?