我的理解是 go fmt 应该生成可读且格式一致的代码。但我认为情况并非如此。
我输入了注释的代码,然后 go fmt 返回了未注释的代码。为什么它倒塌了0.5*(y3-y0),却没有倒塌0.5 * (y2 - y0)?怎样才算一致呢?而且,在我看来,几乎所有空间都塌陷的返回线是一场可读性灾难。
不一致是一个错误吗?有没有办法让 go fmt 单独保留某些线路(例如返回线路)?
func cubicInterpolate(x, y0, y1, y2, y3 float64) float64 {
// 4-point, 3rd-order Hermite (x-form)
// c0 := y1
// c1 := 0.5 * (y2 - y0)
// c2 := y0 - 2.5 * y1 + 2. * y2 - 0.5 * y3
// c3 := 1.5 * (y1 - y2) + 0.5 * (y3 - y0)
//
// return ((c3 * x + c2) * x + c1) * x + c0
c0 := y1
c1 := 0.5 * (y2 - y0)
c2 := y0 - 2.5*y1 + 2.*y2 - 0.5*y3
c3 := 1.5*(y1-y2) + 0.5*(y3-y0)
return ((c3*x+c2)*x+c1)*x + c0
}
临摹微笑
相关分类