其他几种语言具有“流畅”或链式调用风格的 api,它允许您执行如下调用:
public class CatMap : ClassMap<Cat>
{
public CatMap()
{
Id(x => x.Id);
Map(x => x.Name)
.Length(16)
.Not.Nullable();
Map(x => x.Sex);
References(x => x.Mate);
HasMany(x => x.Kittens);
}
}
值得注意的例子包括 fluent nhibernate、jquery 方法链等。这是一种常见的(我会说非常受欢迎)api 设计模式。
问题:go 语法似乎不支持这一点。
你可以在 go 中做到这一点:
var blah = X().Y().Thing().OtherThing()
...但是这个:
package main
import "n"
func main() {
n.Log(":D")
.Example()
.Example
}
结果是:
> command-line-arguments
> ./app.go:7: syntax error: unexpected .
...基本上,因为 go 会自动在行尾插入 ; 。
有谁知道是否有办法解决这个问题?
你能禁用自动吗?在一个街区不知何故?
或者这种api在go中是不可能的?
相关分类