Go变量
Go变量
最近打算抽业余时间学习一下近年来大火的Golang,本身是学php的,之前就想再学一门静态类型的语言来作为补充,显然golang对我再合适不过了。对它感兴趣的原因有以下:
1)php只能单线程执行任务,在比如在采集任务中,它需要抓完一个网页,再接着抓第二个网页,这效率严重低下,无法忍受之痛。虽然在服务器上跑可以使用计划任务开多个php进程,但是内存开销又变得太大了。
2)在用php开发的网站中,url请求的内容只能等服务器端执行完毕才能响应给客户端,无法异步执行。这个问题比较头疼,比如提交的连接要检查页面状态,提交的时候直接检查的话,就需要用户等待较长时间,虽然可以变相使用计划任务配合执行,但是终究不完美,并不是我想要的解决方案。
3)在php中,如果程序有比较多curl请求网络任务,并且连接迟迟没结束的话,它很容易就导致网站出现502的问题。虽然可以通过设置curl超时时间来降低发生频率,但是它始终是一个悬在头上的问题。
之后在学习过程中,再与PHP边对比边进行学习。
下面是学习Go变量的一段程序代码:
1 package main 2 3 // 匿名变量 4 func getNameAndAge() (string, int) { 5 return "tom", 20 6 } 7 8 func main() { 9 // Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字 10 11 // 初始化 12 var name string = "tom" 13 14 // 类型推断 15 var name = "tom" 16 17 // 批量初始化 18 var name, age, b = "小明", "20", true 19 20 // 短变量声明(只能在函数内部执行) 21 name := "tom" 22 23 }