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"
合集:
golang
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2018-05-04 springboot~读取自定义配置项
2017-05-04 nginx~linux下的部署
2012-05-04 事件的好处~实现对修改的封闭,对扩展的开放!~续