Go语言实战(第一章)-基础知识
Go初识开源容易的构造简单,高效,可靠服务器编程,如处理日志、数据打包、虚拟机处理、文件系统等分布式系统、中间件、数据库代理器
·
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")
}
四、数据类型
- 基本数据类型
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定义别名
项目结构
----$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")
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)