前端转golang从小白到实战自学笔记(2023/3/1)
了解:https://www.runoob.com/go/go-concurrent.html
golang学习方向
区块链研发工程师
go服务器=>(特点:数据处理,处理大并发)/游戏软件工程师
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
标识符区分大小写。 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管理镜像和容器
相关文章:

前端转golang从小白到实战自学笔记(2023/3/1)
了解:https://www.runoob.com/go/go-concurrent.htmlgolang学习方向区块链研发工程师go服务器>(特点:数据处理,处理大并发)/游戏软件工程师golang分布式/云计算软件工程师(盛大云、cdn、京东)…...

10个必须知道的JavaScript技巧,让你成为更好的程序员
1.Promise回调地狱Promises 提供了一种优雅的方式来处理 JavaScript 中的异步操作。这也是避免“回调地狱”的解决方案之一。但是我并没有真正理解它的意思,所以我写了这段代码。我做了这些事情:先获取用户的基本信息。按用户信息获取所有文章的简要摘要…...

蓝桥杯真题(JAVA)--分巧克力
题目描述儿童节那天有 K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 NN 块巧克力,其中第 i块是HiWi 的方格组成的长方形。为了公平起见,小明需要从这 NN 块巧克力中切出 K 块巧克力分给小朋友们。切出的巧克力需要满足&…...

机器学习:学习KMeans算法,了解模型创建、使用模型及模型评价
机器学习:学习KMeans算法,了解模型创建、使用模型及模型评价 作者:AOAIYI 作者简介:Python领域新星作者、多项比赛获奖者:AOAIYI首页 😊😊😊如果觉得文章不错或能帮助到你学习&#…...

ChatGPT引爆AIGC,垂类龙头迎来“创新春天”
文|智能相对论作者|陈壹一款AI产品,到底有多神?ChatGPT刷新了我们的认知。它用2个月时间,完成TikTok花9个月,Instagram花2年半才做到的事,成为史上用户增速最快破亿的消费级应用程序。它也凭借一己之力,让谷…...

科技制造商必须对安全、设计选择承担更多责任
网络安全和基础设施安全局局长称当今商业网络安全的现状是"不可持续的",公司、消费者和政府必须集体转变期望,让主要软件和硬件制造商对不安全的产品负责,而不是用户。 拜登政府预计将在未来几天发布一项战略,该战略将…...

HTML认知
HTML认知 文章目录HTML认知语法规范注释标签组成和关系标签的关系标签学习排版系列标签**标题标签****段落标签**换行标签水平线标签文本格式化标签媒体标签图片标签src 目标图片的路径alt 替换文本title 图片的标题width 宽度 / height 高度路径绝对路径相对路径(常…...

全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例实践
根据最新生态环境影响评价导则,结合生态环评内容庞杂、综合性强的特点,以既包括陆域、又包括水域的项目为主要案例,对生态环评的具体流程及所需内容进行系统阐述。利用Rstudio、Fragstats等软件分析计算生态环评中所需各种指数,利…...

【Spring】Spring缓存注解@Cacheable、@CacheEvict、@CachePut使
文章目录1 基于注解的支持1.1 Cacheable1.1.1 value属性指定Cache名称1.1.2 使用key属性自定义key1.1.3 condition属性指定发生的条件1.2 CachePut1.3 CacheEvict1.3.1 allEntries属性1.3.2 beforeInvocation属性1.4 Caching1.5 使用自定义注解2 配置Spring对Cache的支持2.1 声…...

学了很久python却什么都做不了?这个方法一定要试试
很多人学了两三个月的python却什么都做不了,但有的人只学了不到一个月的时间,就可以开始自己做项目或者接私活,这是为什么? 作为20年码龄的老程序员,龙叔我觉得除了内在原因外,学习资源占据着大头。拥有好的…...

SiC MOSFET驱动电压的分析
SiC MOSFET驱动电压的分析 tips:资料来自富昌电子,及各个模块数据手册。 1.常见的Vgs与Vgs(th),以及对SiC MOSFET应用的影响 驱动电压Vgs和栅极电压阈值Vgs(th)关系到SiC MOSFET在应用过程中的可靠性,功率损耗(导通电阻),以及驱…...

Python爬虫之Scrapy框架爬虫实战
Python爬虫中Scrapy框架应用非常广泛,经常被人用于属于挖掘、检测以及自动化测试类项目,为啥说Scrapy框架作为半成品我们又该如何利用好呢 ?下面的实战案例值得大家看看。 目录: 1、Scrapy框架之命令行 2、项目实现 Scrapy框架…...

基于DSP的三相开关霍尔永磁同步电机控制
0 前言 本文本应该是一篇 记录我使用DSP28377D控制一个基于三相开关霍尔传感器的高速永磁同步电机全过程的长文,但大部分零散的知识点我都已经写成单独的博客了,所以本文更像是一个知识框架的梳理。本文最终目的是实现高速PMSM的电流-速度双闭环&#x…...

Vue和React的对比
1、响应式原理不同 vue:vue会遍历data数据对象,使用Object.definedProperty()将每个属性都转换为getter和setter,每个Vue组件实例都有一个对应的watcher实例,在组件初次渲染的时候会记录组件用到了那些数据,当数据发生…...

移动进阶之高效开发
响应式布局 媒体查询的语法 /* 4.媒体特性 *//* width / max-width / min-width *//* -webkit-device-pixel-ratio / -webkit-max-device-pixel-ratio / -webkit-min-pixel-ratio *//* orientation: landscape / portrait *//* media screen and (min-width: 320px) {body {b…...

用户手册:遥测服务之推送至 TDengine
创建TelemetryService Yaml 文件 apiVersion: shifu.edgenesis.io/v1alpha1 kind: TelemetryService metadata:name: push-endpoint-1namespace: devices spec:telemetrySeriveEndpoint: http://telemetryservice.shifu-service.svc.cluster.localserviceSettings:SQLSetting:…...

软件测试的主要工作内容是什么
平时说起程序员印象中大都是做Java、做前端、做后端,用着非常晦涩难懂的语言。在电脑前哐哐哐,没一会满屏代码显现出来。然而程序员并不全是印象中这样,还有一部分:他们不常写代码,主要去检查代码,是不是出…...

【云原生kubernetes】k8s中job与cronjob使用详解
一、前言 job,顾名思义就是任务,job的概念在很多框架中都有,而且实际业务场景中也使用非常广泛,比如大家熟悉的hadoop,客户端可以向集群提交一个job,然后集群根据一定的调度策略来处理这个job; …...

js-cookie的使用
实际上,cookie本身并不是用来做服务器存储的,关于jscookie存储的理解,可以参考我记录的js的数据存储专栏。 Cookie 是一些数据, 存储于客户端电脑上的文本文件中,其中记录了用户的用户名、密码、浏览的网页、停留的时间等等信息。…...

c++11 关键字 override 使用
写在最前。。。 请支持原创~~ 1. 功能 用在类中成员函数声明的地方,用以标记一个virtual function 是重写另一个 virtual function; 2. 语法 只声明时,override 紧跟参数的右括号,如果是纯虚函数,override 会出现在…...

从16K跳槽到20K,最后算下来年薪却还降了,我笑了····
跳槽时薪资涨了 4000,但年薪总包算下来反而变少了,这是怎么回事? 上周,我星球里一个同学就遇到了这么一个问题,薪资涨了、总包降了,而且谈薪时把自己坑了。 作为一个案例,我觉得对很多人可能会…...

线性表 链表表示
初识链表 用一组物理位置任意的存储单元来存放线性表的数据元素。这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。链表中元素的逻辑次序和物理次序不一定相同。 在存储自己内容的同时也存储下一个元素的地址。存…...

面试题JavaScript篇(二)
目录 一、内存泄露 1、是什么 2、导致的原因 二、垃圾回收机制的策略 三、浅拷贝和深拷贝 1、浅拷贝 .slice() ...展开运算符 Object.assign(目标对象, 被复制的对象) ...展开运算符 2、深拷贝 structuredClone() 浏览器提供 JSON.parse(JSON.stringify(obj)) …...

项目管理工具dhtmlxGantt甘特图入门教程(十五):从MS项目导入/导出(下)
这篇文章给大家讲解dhtmlxGantt请求大文件导入的大小限制。 dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足应用程序的所有需求,是完善的甘特图图表库 DhtmlxGantt正版试用下载(qun 764148812)https:…...

2023 年 6 大智能合约语言
如果你想成为一名 Web3 开发人员,你需要知道如何编写智能合约,智能合约是所有 Web3 应用程序的支柱。 简而言之,智能合约是在区块链网络上部署和执行的计算机程序,提供确定性保证,使多方能够达成一致的、防篡改的结果…...

家用洗地机哪款最好用?全球洗地机十大品牌
近年来,智能家用电器洗地机已经融入到我们生活中了,成为最受欢迎的清洁工具了,家用洗地机吸拖洗一体,不用先扫后拖那么麻烦,只需轻轻一推,就能把扫地、拖地、擦地的活全干了,操作简单࿰…...

【2223sW2】LOG1
写在前面 好好学习,走出宿舍,走向毕设! 一些心路历程记录,很少有代码出现 因为鬼知道哪条代码到时候变成毕设的一部分了咧,还是不要给自己的查重挖坑罢了 23.2.27 文件批量重命名 为了给学姐先整出来一批训练数据&…...

Spring Cloud配置application.yml与bootstrap.yml区别及多profile配置 | Spring Cloud 6
一、前言 Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap,另外一种是 application。 1.1 两者区别 bootstrap.yml/bootstrap.properties 和 application.yml/application.yml 都可以用来配置参数。…...

springboot通过aop实现全局日志(是否自定义注解都可以)
内容参考自以下两个链接1、springboot中使用AOP切面完成全局日志_aop全局日志_邹飞鸣的博客-CSDN博客使用AOP记录日志_aop日志_trusause的博客-CSDN博客第一个链接思路很清晰,讲的也很详细,第二个链接讲了自定义注解为了便于自己理解做了以下整理目录 1.aspectj基本概念 2.添加…...

k8s面试题-进阶
1、简述etcd及其特点etcd是CoreOS团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于Go语言实现。特点&…...