背景
近两天给朋友写了一个Web小应用,其实需求也是很简单就是在微信上打开一个网页然后点击网页中的一个按钮调用对应硬件的API接口然后线下设备根据对应的API的响应进行操作,经过对需求的衡量和技术上的考虑决定用时下热门的go来写一个小的Web server应用,这篇文章算是对这次使用go过程的一个总结记录。
使用感受
在使用go的过程感受到了它语法的飘逸了,比如:
- 项目结构的组织,参见:How to Write Go Code
变量的声明
str:="Hello" //强烈建议用这样简洁的写法 var i int=1
if条件表达式的写法
str:="Hello" if str!=nil{ fmt.println(str) }
- 语句行的结尾不需要 ;
对函数返回的数据可以这样写
func getName() (name string){ name="Go lang" return }
有的表达式 需要在函数的结尾调用的话,在表达式前加 defer
func say(){ defer fmt.Println("Go") fmt.Println("Hi") }
- 简单的几行就能实现一个Web Server,详细的代码见:A tour of go
但在使用的过程中还是有些不习惯的,比如:
- 在代码块 {} 的时候,开始的 { 一定要放在结尾,对于我习惯于 { 换一行的人来说在开始简直是噩梦,但习惯习惯就好了.
- 对 interface 类型到具体类型的转换
- 对声明的变量或导入的库后面没有使用的编译的时候一定会让你编译不过,但这也是go的一个优秀的地方,让这个语言运行的时候更高效了.
其实最主要还是长期使用一种语言出现语法差异上的不习惯,习惯习惯就好了,先暂时总结这么多吧,对GO我也还有很多还需要了解的地方,以后在慢慢的写吧!
参考资料
- A Tour of Go
- Go Lang官网 官网应该被GFW了替代 Go-Zh
- Go语言中文网