前端转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 会出现在…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...