golang基础知识
一 golang基础知识
Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种计算机编程语言语言。
设计初衷
Go语言是谷歌推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。"
- 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
- 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
- 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列的困扰需要解决。
应用领域
数据类型
- int :有符号的整数类型:具体占几个字节要看操作系统的分配:不过至少分配给32位。
- uint:非负整数类型:具体占几个字节要看操作系统的分配:不过至少分配给32位。
- int8:有符号的整数类型:占8位bit:1个字节。范围从负的2的8次方到正的2的8次方减1。
- int16:有符号的整数类型:占16位bit:2个字节。范围从负的2的16次方到正的2的16次方减1。
- int32:有符号的整数类型:占32位bit:4个字节。范围从负的2的32次方到正的2的32次方减1。
- int64:有符号的整数类型:占64位bit:8个字节。范围从负的2的64次方到正的2的64次方减1。
- uint8:无符号的正整数类型:占8位:从0到2的9次方减1.也就是0到255.
- uint16:无符号的正整数类型:占16位:从0到2的8次方减1.
- uint32:无符号的正整数类型:占32位:从0到2的32次方减1.
- uint64:无符号的正整数类型:占64位:从0到2的64次方减1.
- uintptr:无符号的储存指针位置的类型。也就是所谓的地址类型。
- rune :等于int32:这里是经常指文字符。
- byte:等于uint8:这里专门指字节符
- string:字符串:通常是一个切片类型:数组内部使用rune
- float32:浮点型:包括正负小数:IEEE-754 32位的集合
- float64:浮点型:包括正负小数:IEEE-754 64位的集合
- complex64:复数:实部和虚部是float32
- complex128:复数:实部和虚部都是float64
- error:错误类型,真实的类型是一个接口。
- bool:布尔类型
基础组件分为以下几种
- 引用类型
- slice
- interface
- chan
- map
- 非引用类型
- array
- func
- struct
声明包和引用包
package main
import (
"fmt"
"lind-go/common"
//自定义的本项目的包
_ "lind-go/common"
)
赋值符号
var a
b :=
其中var 这种方式不论是局部还是全局变量都可以使用,但是后者也就是:=只有局部变量可以使用。也就是只有函数内部才能使用。
并且,var后面的变量后面的类型是可以省略的,省略后,go会在编译过程中自动判断。所以如果不省略就是长这样 var a int 。
数组的初始化
// 初始化的方式1
a := [6]string{}
// 初始化的方式2
var a [6]string
a[0] = "0"
a[1] = "1"
a[2] = "2"
a[3] = "3"
a[4] = "4"
a[5] = "5"