做技术的总是有些拗。这么多年一直在.net的框框里打转转。直到现在市场上.net工作越来越难找,项目越来越老才发现不做出改变不行了。就从学习Go开始吧。
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程、函数式编程、面向消息编程等,这些思想究竟孰优孰劣,众说纷纭。
除了OOP外,近年出现了一些小众的编程哲学,Go语言对这些思想亦有所吸收。例如,Go语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go语言是一个非常现代化的语言,精小但非常强大。
Go 语言最主要的特性:
自动垃圾回收更丰富的内置类型函数多返回值错误处理匿名函数和闭包类型和接口并发编程反射语言交互性去官网 https://golang.org/dl/ 下载安装包最简单。我是下的这个 go1.12.6.windows-386.msi,一直next就结束了。
这时候看环境变量的话会发现增加了个GOPATH,这会保证我们的Go命令有效。
右键我的电脑->属性->高级设置->高级->环境变量
1、创建工作目录 D:\>GoCode
2、建立个hello.go的文件,用文本编辑器就好了。
// main包,凡是标注为main包的go文件都会被编译成可执行文件 package main // 导入需要使用的包 import ( "fmt" //支持格式化输出的包,就是format的简写 ) // 主函数,程序执行入口 func main(){ /* 输出hello world! Println就是print line的意思 */ fmt.Println("hello world!") }3、启动CMD窗口
编译运行命令:go run hello.go编译命令:go build hello.go 生成 hello 可执行文件执行:hello 执行可执行文件
好了,启动是ok了。
我们上面写了一个hello world的小程序,我们现在用另外一个例子看下Go语言的程序结构:
// 当前程序的包名 package main // 导入其他包 import . "fmt" // 常量定义 const PI = 3.14 // 全局变量的声明和赋值 var name = "gopher" // 一般类型声明 type newType int // 结构的声明 type gopher struct{} // 接口的声明 type golang interface{} // 由main函数作为程序入口点启动 func main() { Println("Hello World!") }Go 程序是通过 package 来组织的。
只有 package 名称为 main 的包可以包含 main 函数。
一个可执行程序有且仅有一个 main 包。
通过 import 关键字来导入其他非 main 包。
可以通过 import 关键字单个导入:
import "fmt" import "io"也可以同时导入多个:
import ( "fmt" "math" )例如:下面我们求2的10次方
package main import ( "fmt" "math" ) func main() { fmt.Println(math.Exp2(10)) // 1024 }使用 <PackageName>.<FunctionName> 调用:
package 别名: // 为fmt起别名为fmt2 import fmt2 "fmt"省略调用(不建议使用):
// 调用的时候只需要Println(),而不需要fmt.Println() import . "fmt"前面加个点表示省略调用,那么调用该模块里面的函数,可以不用写模块名称了:
import . "fmt" func main (){ Println("hello,world") }通过 const 关键字来进行常量的定义。
通过在函数体外部使用 var 关键字来进行全局变量的声明和赋值。
通过 type 关键字来进行结构(struct)和接口(interface)的声明。
通过 func 关键字来进行函数的声明。
可见性规则
Go语言中,使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包所调用。
函数名首字母小写即为 private :
func getId() {}函数名首字母大写即为 public :
func Printf() {}posted on 2019-06-25 11:52 tianyamoon 阅读( ...) 评论( ...) 编辑 收藏
转载于:https://www.cnblogs.com/tianyamoon/p/11081977.html
相关资源:学习go语言(Golang)