学习GO
在学GO之前,在GitHub上见到许多使用GO写的优秀项目
比如caddy,frp等
通过GO写出来的程序,可以直接编译到其它平台上面,这点给我感觉GO十分强大
至少省去编译链配置,给路由器写个插件什么的,都很方便的!
虽然一直想学GO,但总因为各种原因推迟。
直到社团任务下来,总算有了动力,加上校运会的偷闲,
有了时间学习Go了,也算填坑了吧。
初入Go语言,给我感觉就是C语言语法的减缩版,
自己完全把它当成C语言来对待。但是后面发现,除了语法和C语言相似外,
其功能可比C语言强大许多。
最鲜明的特点就是Go语言支持多个返回值。
多个返回值,让Go的程序看起来很优雅,程序员也需要“优雅”
此外,支持 a,b = b,a
的交换变量值方式,让Go语言看起来更接近自然语言
进一步降低学习成本。而且Go语言虽然支持指针,但不会像C语言指针满天飞。
还有就是switch语句中case不用break结尾,真是方便,因为break语句容易忘记写。
还有就是case匹配也不局限与C语言的值匹配,Go处理的更灵活,更有风度。
然后,就是Go语言的面向对象了。
对于C++我一直觉得很难,因为C++里面面向对象实在有点让人摸不着头脑。
太多东西要学了....
相对的Go抛弃许多面向对象的特性,仅仅使用很少特性就实现面向对象(这点我理解不够)
就是学习成本很低了。啦啦...
网站开发
hello.go
func helloHandler(w http.ResponseWrite,r *http.Request){
io.WriteString(w,"Hello, world!")
}
func main(){
http.HandleFunc("/",helloHandler)
err := http.ListenAndServe(":80",nil)
if err != nil {
log.Fatal("ListenAndServe:".err.Error())
}
}
Go web demo
Go仅用几行代码就实现一个httpServer
用法简单,十分友好