版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/86631984
Go初识
简洁、快速
C 和 C++这类语言提供了很快的执行速度,
Ruby 和 Python 这类语言则擅长快速开发。 Go 语言在这两者间架起了桥梁
安全
并行
开源
内存管理、数组安全、编译迅速
一、特点
- 运行效率高(编译型语言),开发高效(语法少,关键字少),部署简单
- 支持并发,易于利用多核实现并发
- 内置runtime(性能监控,GC等)
- 丰富的标准库,强大的网络库
- 内置强大的工具gofmt 跨平台编译 内嵌C支持
二、作用
- 服务器编程,如处理日志、数据打包、虚拟机处理、文件系统等
- 分布式系统、中间件、数据库代理器
- 网络编程:web应用、API应用
- 云平台
三、点击win下download
四、基础语法
Go 开发者使用组合( composition)设计模式,没有继承,只需简单地将一个类型嵌入到另一个类型,就能复用所有的功能。
在 Go 语言中,不需要声明某个类型实现了某个接口,编译器会判断一个类型的实例是否
符合正在使用的接口。
生成exe命令 go build main.go
运行 go run main.go
package main//要生成可执行程序,必须要有main的package包,且该包下要有main()
//每个源文件必须有package声明 必须在第一行
import "fmt"
//第二种形式
import (
"" //不得导入没有用过的包
""
_ //导入的路径前面有一个下划线,Go 编译器不允许声明导入某个包却不使用。下划线让编译器接受这类导入
)
//单行注释 定义常量
const NAME = "dd"
/*多行注释 全局变量*/
var name = "a"
//main之前执行
func init() {
}
//整个程序入口
func main(){
fmt.Println("hello world")
}
四、数据类型
- 基本数据类型
http://www.runoob.com/go/go-data-types.html
字符串类型string,统一为utf-8
package main
import (
"fmt"
"unsafe"
)
func main(){
var i int32 = 1
fmt.Print(unsafe.SizeOf(i));
}
// 输出 4
-
派生类型
-
0
-
用type定义别名
hello world
文件名: test.go cmd:go run test.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
需要注意的是:
{
不能单独放在一行,
一行代表一个语句结束
变量定义
不允许有没有用到的变量
var age int;
if条件语句
package main
import "fmt"
func main() {
var a int = 10
if a < 20 {
fmt.Println("a 小于 20\n")
} else {
fmt.Println("a 大于 20\n")
}
fmt.Printf("a的值为 %d ",a)
}
switch
匹配项后面也不需要再加 break
package main
import "fmt"
func main() {
var str string = "B"
var mark int = 90
switch mark{
case 90:
fmt.Println("90")
default:
fmt.Println("20")
}
switch {
case str == "A" :
fmt.Println("A")
default:
fmt.Println("B")
}
}