0
点赞
收藏
分享

微信扫一扫

我的Go+语言初体验——go【Format】goplus


欢迎大家参与【我的Go+语言初体验】活动:


前言:

goplus的开发者许先生向群内推荐了一个很酷炫的功能你可以贴一段 Go代码,然后点 Format,得到对应的 Go+ 风格的代码:

我的Go+语言初体验——go【Format】goplus_开发语言

说完我就去做了一下测试,那是相当简洁啊。

1、直观测试效果

package main

import "fmt"

func main() {
fmt.Println("Hello, new goplus世界")
}

我的Go+语言初体验——go【Format】goplus_go_02

点击【Format】之后

我的Go+语言初体验——go【Format】goplus_开发语言_03 

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())
}

我的Go+语言初体验——go【Format】goplus_go语言_04

效果如下:

我的Go+语言初体验——go【Format】goplus_开发语言_053、多函数格式化效果(皮亚诺整数)

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)
}
}

执行测试,无问题。

我的Go+语言初体验——go【Format】goplus_gop_06

 点击【Format】格式化效果:

我的Go+语言初体验——go【Format】goplus_开发语言_07

 还是节约了一些的。

有GO语言习惯的同志有好东西用了。


举报

相关推荐

go语言rpc初体验

0 条评论