当前位置: 首页 > news >正文

前端转golang从小白到实战自学笔记(2023/3/1)

了解:https://www.runoob.com/go/go-concurrent.html

golang学习方向


  1. 区块链研发工程师

  1. go服务器=>(特点:数据处理,处理大并发)/游戏软件工程师

  1. golang分布式/云计算软件工程师(盛大云、cdn、京东)

统称golang核心编程

应用领域


区块链应用

后台服务器应用

云计算/云服务后台应用

学习方法


go语言吉祥动物:金花鼠

如何深入学习一个新技术知识点


什么是程序


why is go语言


go的诞生


go语言特点


go语言开发工具


配置Go环境


$env:GO111MODULE = "on"
$env:GOPROXY = "http://goproxy.cn"

golang标识符、关键字、命名规则


标识符的组成

1.标识符由数字、字母和下划线( _)组成。123 abc _

2.只能以字母和下划线(_)开头。abc123 _sysVar 123abc

  1. 标识符区分大小写。 name Name NAME

// 标识符命名
package main
import "fmt"
func main() {// 正确写法var name stringvar age intvar _sys int// 错误写法var 1name stringvar &age intvar !email
}
// 语言关键字 举例
func main() {if  condition {}append()  
}// 命名规范

golang变量


变量是计算机语言中能储存计算结果或能表示值的抽象概念不同的变量保存的数据类型可能会不一样

// 变量声明的语法
varidentifier type
var: 声明变量关键字
identifier:变量名
type: 变量类型
注意:变量一旦声明必须使用
package main
func main(){// 声明赋值 初始化var name string = "tom"var age int = 20 // 声明赋值类型推断自动判断类型 初始化var name = "tom"var age = 20 // 第一种var name stringvar age intvar m bool// 第二种var (name stringage intm bool)// 初始化多个变量及赋值var name,age,b = "tom",20,true//短变量声明 := 只能用在函数内部name := "tom"age := 10// 匿名变量 省略声明 函数调用的方式使用func a()(string, inta) {return "tom", 20}使用 name, age = a()
}

golang语言常量


常量,就是在程序编译阶段就确定下来的殖,而程序在运行时则无法改变该值。在Go程序中,常量可以是数值类型(包括整型、浮点型和复数类型) 、布尔类型、字符串类型等。

const constantName[type] = value
const PI float64 = 3.14
const PI2 = 3.145 // 可以省略
const (width = 100height = 200
)
const i,j = 1,2
const a,b,c = 1,2,"foo"

iota 类似于 i++

const (
a = iota
a1 = iota
_ // 跳过的意思 不过还是要+1
a2 = iota
)

golang数据类型


golang基于架构的类型,例如:int、uint、uintptr
输出类型
fmt.Printf("%T\n",name) // string 类型
数组类型
a := [2]int{1,2}

golang布尔类型


var a:bool = true
var b:bool = false
// 用法 
// 注意 不能用0和非0表示bool类型
if age >= 18 {fmt/Println("ni")
}

golang数字类型MP4


func main {var i8 int8var i16 int16var ui8 uint8}

golang字符串


var html string = <html></html>
var str string = "1231223"
var dstr string = `
1
2
3
`
var pin = html + str
strings.Join([]string{html,str},",") // 字符串连接
var buffer bytes.Buffer // 缓存区
buffer.WriterString("tom")
// 切片
a := 2
b := 5
s[a:b] // 从a到b-1区间截取
s[:b] // 从0到b-1区间截取
s[a:] // 从0到最后区间截取
len(s) // 获取字符串长度
strings.Split(s, "") // 数组截取

golang格式化输出


fmt.Pringf()
// 结构图题
type WebSite struct {Name string
}
func main() {site := WebSite{Name:"docke360"}
}

golang运算符


golang中的流量控制


golang中的if语句


golang中的嵌套if语句


golang中switch的用法


golang中for循环


golang中for range循环


golang中goto关键字


golang中数组


golang中访问数组元素


golang中切片


golang中切片初始化


golang中切片的遍历


golang中切片的添加删除


golang中map


golang中map遍历


golang中函数


golang中函数返回值


golang中函数参数


golang中函数类型和函数变量


golang中高阶函数


golang中匿名函数


golang中闭包


golang中递归


golang中defer语句


golang中init函数


golang中指针


golang中指向数组的指针


golang中类型定义和类型别名


golang中结构体


golang中结构体初始化


golang中结构体指针


golang中结构体作为函数参数


golang中结构体的嵌套


golang中方法


golang中方法接收者类型


golang中接口


golang中接口值类型接收者和指针类型接收者


golang中接口和类型的关系


golang中接口嵌套


golang中接口实现ocp设计原则


golang中使用oop思想的实现和方法


golang中继承


golang中构造函数


golang中包


golang中包管理工具go mod


golang中并发编程之协程


golang中并发编程之通道channel


golang中并发编程之WaitGroup实现同步


golang中并发编程之runtime包


golang中并发编程之Mutext互斥锁实现同步


golang中并发编程之channel的遍历


golang中并发编程之select


golang中并发编程之Timer


golang中并发编程之Ticker


golang中并发编程之原子变量的引入


golang中并发编程之原子操作详解

golang中标准库os模块-文件目录相关


golang中标准库os模块-File文件读操作


golang中标准库os模块-File文件写操作


golang中标准库os包进程相关操作


golang中标准库os包和环境相关的方法


golang中标准库io包input output


golang中标准库ioutil包


golang中标准库bufio读相关操作


golang中标准库bufio写相关操作


golang中标准库bufio Scanner相关方法


golang中标准库log


golang中标准库builtin


golang中标准库bytes常用函数


golang中标准库bytes Reader类型


golang中标准库bytes Buffer类型


golang中标准库errors


golang中标准库sort包


golang中标准库time


golang中标准库json


golang中标准库xml


golang中标准库math


golang中操作mysql数据库-准备数据库和表


golang中操作mysql数据库-安装配置mysql驱动


golang中操作mysql数据库获得数据库连接


golang中操作mysql数据库-插入数据


golang中操作mysql数据库-查询操作


golang中操作mysql数据库-更新数据


golang中操作mysql数据库-删除数据


golang中操作MongoDB-BSON简介


golang中操作MongoDB-添加文档


golang中操作MongoDB-查找文档


golang中操作MongoDB-更新文档


golang中操作MongoDB-删除文档


gorm概述


gorm声明模型


gorm连接到数据库


gorm创建记录


gorm查询记录


gorm更新


gorm删除


gorm原生SQL和SQL构建器


gorm关联关系Belongs To(属于)


gorm关联关系值Has One(有一个)


gorm关联关系之Has Many


gorm关联关系之Many To Many


gorm关联关系之实体关联


gorm session配置


gorm事务控制


git简介


git的安装和配置


git的四个工作区


git文件的四种状态


git常用命令


git配置用户签名


git初始化本地仓库


git查看状态


git将代码添加到暂存区


git提交代码


git修改并提交代码


git项目版本切换


git分支简介


git分支常用命令


git合并分支


git合并解决冲突


git团队协作


gitHub创建远程仓库


gitHub推送本地仓库


gitHub拉取远程仓库


gitHub克隆远程仓库


gitHub团队内协作


gitHub跨团队协作


gitHub免密登录


配置git忽略文件


IDEA集成git初始化本地仓库


IDEA集成git切换版本


IDEA集成git创建和切换分支


IDEA集成git合并分支


IDEA集成git合并分支并解决冲突


IDEA中配置GitHub


IDEA中推送项目到github


IDEA中配置从github拉取项目


克隆gitHub中的项目


gitee码云简介


IDEA集成码云Gitee


gitlab简介


gitlab的安装与初始化


IDEA集成gitlab


为什么使用Docker


Docker简介


安装Docker


Docker中央仓库


Docker镜像操作


Docker容器


准备一个web项目


创建MySQL容器


创建Tomcat容器


将项目部署到tomcat


Docker数据卷


Dockerfile


Docker自定义镜像


下载安装Docker-compose


Docker-compose管理mysql和tomcat容器


使用Docker-compose命令管理容器


使用Docker-compose和Dockerfile管理镜像和容器


http://www.lryc.cn/news/25698.html

相关文章:

  • 10个必须知道的JavaScript技巧,让你成为更好的程序员
  • 蓝桥杯真题(JAVA)--分巧克力
  • 机器学习:学习KMeans算法,了解模型创建、使用模型及模型评价
  • ChatGPT引爆AIGC,垂类龙头迎来“创新春天”
  • 科技制造商必须对安全、设计选择承担更多责任
  • HTML认知
  • 全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例实践
  • 【Spring】Spring缓存注解@Cacheable、@CacheEvict、@CachePut使
  • 学了很久python却什么都做不了?这个方法一定要试试
  • SiC MOSFET驱动电压的分析
  • Python爬虫之Scrapy框架爬虫实战
  • 基于DSP的三相开关霍尔永磁同步电机控制
  • Vue和React的对比
  • 移动进阶之高效开发
  • 用户手册:遥测服务之推送至 TDengine
  • 软件测试的主要工作内容是什么
  • 【云原生kubernetes】k8s中job与cronjob使用详解
  • js-cookie的使用
  • c++11 关键字 override 使用
  • 从16K跳槽到20K,最后算下来年薪却还降了,我笑了····
  • 线性表 链表表示
  • 面试题JavaScript篇(二)
  • 项目管理工具dhtmlxGantt甘特图入门教程(十五):从MS项目导入/导出(下)
  • 2023 年 6 大智能合约语言
  • 家用洗地机哪款最好用?全球洗地机十大品牌
  • 【2223sW2】LOG1
  • Spring Cloud配置application.yml与bootstrap.yml区别及多profile配置 | Spring Cloud 6
  • springboot通过aop实现全局日志(是否自定义注解都可以)
  • k8s面试题-进阶
  • 预览版Edge申请微软new Bing失败解决方案