Go初识

简洁、快速
C 和 C++这类语言提供了很快的执行速度,
Ruby 和 Python 这类语言则擅长快速开发。 Go 语言在这两者间架起了桥梁
安全
并行
开源
内存管理、数组安全、编译迅速

一、特点
  • 运行效率高(编译型语言[解释型语言举例:py,php]),开发高效(语法少,关键字少),部署简单
  • 支持并发,易于利用多核实现并发
  • 内置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")
}
四、数据类型
  1. 基本数据类型
    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
  1. 派生类型

  2. 0在这里插入图片描述

  3. 用type定义别名

项目结构

----$GOPATH/src 代码
----$GOPATH/bin 下载的第三方包源代码文件
----$GOPATH/pkg 生成的中间缓存文件

在这里插入图片描述

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")
	}
}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐