欢迎大家参与【我的Go+语言初体验】活动:
活动地址:【https://bbs.csdn.net/topics/603464006?utm_source=1594742339】
前言:
goplus的开发者许先生向群内推荐了一个很酷炫的功能你可以贴一段 Go代码,然后点 Format,得到对应的 Go+ 风格的代码:
说完我就去做了一下测试,那是相当简洁啊。
1、直观测试效果
package main import "fmt" func main() { fmt.Println("Hello, new goplus世界") }
点击【Format】之后
2、函数格式化(前10个月的兔子):
写个函数调用看看:
package main func fib() func() int { a, b := 0, 1 return func() int { a, b = b, a+b return a } } func main() { f := fib() println(f(), f(), f(), f(), f(),f(),f(),f(),f(),f()) }
效果如下:
3、多函数格式化效果(皮亚诺整数)
package main import "fmt" type Number *Number func zero() *Number { return nil } func isZero(x *Number) bool { return x == nil } func add1(x *Number) *Number { e := new(Number) *e = x return e } func sub1(x *Number) *Number { return *x } func add(x, y *Number) *Number { if isZero(y) { return x } return add(add1(x), sub1(y)) } func mul(x, y *Number) *Number { if isZero(x) || isZero(y) { return zero() } return add(mul(x, sub1(y)), x) } func fact(n *Number) *Number { if isZero(n) { return add1(zero()) } return mul(fact(sub1(n)), n) } func gen(n int) *Number { if n > 0 { return add1(gen(n - 1)) } return zero() } func count(x *Number) int { if isZero(x) { return 0 } return count(sub1(x)) + 1 } func main() { for i := 0; i <= 9; i++ { f := count(fact(gen(i))) fmt.Println(i, "! =", f) } }
执行测试,无问题。
点击【Format】格式化效果:
还是节约了一些的。
有GO语言习惯的同志有好东西用了。