08 2022 档案

摘要:go语言分支结构 if特殊写法: if err := Connect(); err != nil { fmt.Println(err) return } Connect 是一个带有返回值的函数,err:=Connect() 是一个语句,执行 Connect 后,将错误保存到 err 变量中。 err 阅读全文
posted @ 2022-08-31 16:52 专职 阅读(41) 评论(0) 推荐(0) 编辑
摘要:go语言defer(延迟执行语句) 会用延迟执行语句在函数退出时释放资源 处理业务或逻辑中涉及成对的操作是一件比较烦琐的事情,比如打开和关闭文件、接收请求和回复请求、加锁和解锁等。在这些操作中,最容易忽略的就是在每个函数退出处正确地释放和关闭资源。 defer 语句正好是在函数退出时执行的语句,所以 阅读全文
posted @ 2022-08-31 15:08 专职 阅读(74) 评论(0) 推荐(0) 编辑
摘要:go语言函数声明 每一次函数在调用时都必须按照声明顺序为所有参数提供实参(参数值),在函数调用时,Go语言没有默认参数值,也没有任何方法可以通过参数名指定形参,因此形参和返回值的变量名对于函数调用者而言没有意义。 在函数中,实参通过值传递的方式进行传递,因此函数的形参是实参的拷贝,对形参进行修改不会 阅读全文
posted @ 2022-08-31 10:48 专职 阅读(79) 评论(0) 推荐(0) 编辑
摘要:go语言结构体定义 go语言可以通过自定义的方式形成新的类型,结构体就是这些类型中的一种复合类型,结构体是由一个或多个任意类型的值聚合成的实体,每个值都可以称为结构体的成员。 结构体的成员也可以称为字段,每个字段有如下属性: 字段名必须唯一 字段拥有自己的类型和值 字段的类型也可以是结构体,甚至是字 阅读全文
posted @ 2022-08-30 15:42 专职 阅读(1726) 评论(0) 推荐(0) 编辑
摘要:概念 在Go语言中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。在实际开发过程中,无论是实现 web 应用程序,还是控制台输入输出,又或者是网络操作,都不可避免的会遇到 I/O 操作。 Go语言标准库的 bufio 包中,实现了对数据 I/O 接口的缓冲功能。这些功能封装于 阅读全文
posted @ 2022-08-30 10:49 专职 阅读(114) 评论(0) 推荐(0) 编辑
摘要:go语言实现接口的条件 如果一个任意类型 T 的方法集为一个接口类型的方法集的超集,则我们说类型 T 实现了此接口类型。T 可以是一个非接口类型,也可以是一个接口类型。 实现关系在Go语言中是隐式的。两个类型之间的实现关系不需要在代码中显式地表示出来。Go语言中没有类似于 implements 的关 阅读全文
posted @ 2022-08-30 08:04 专职 阅读(527) 评论(0) 推荐(0) 编辑
摘要:go语言zip归档文件的读写操作 Go语言的标准库提供了对几种压缩格式的支持,其中包括 gzip,因此 Go 程序可以无缝地读写 .gz 扩展名的 gzip 压缩文件或非 .gz 扩展名的非压缩文件。此外标准库也提供了读和写 .zip 文件、tar 包文件(.tar 和 .tar.gz),以及读 . 阅读全文
posted @ 2022-08-29 11:29 专职 阅读(174) 评论(0) 推荐(0) 编辑
摘要:go语言json文件的读写操作 JSON 是一种使用 UTF-8 编码的纯文本格式,采用完全独立于语言的文本格式,由于写起来比 XML 格式方便,并且更为紧凑,同时所需的处理时间也更少,致使 JSON 格式越来越流行,特别是在通过网络连接传送数据方面。 开发人员可以使用 JSON 传输简单的字符串、 阅读全文
posted @ 2022-08-29 08:55 专职 阅读(108) 评论(0) 推荐(0) 编辑
摘要:error_page指令 error_page 指令是设置网站的错误页面。 | 语法 | 默认值 | 位置 | | | | | | error_page ...... [=[response]] ; | — | http、server、location ...... | code是响应码。 当出现对 阅读全文
posted @ 2022-08-28 12:13 专职 阅读(141) 评论(0) 推荐(0) 编辑
摘要:nginx静态资源概述 上网去搜索访问资源对于我们来说并不陌生,通过浏览器发送一个 HTTP 请求实现从客户端发送请求到服务器端获取所需要内容后并把内容回显展示在页面的一个过程。这个时候,我们所请求的内容就分为两种类型,一类是静态资源、一类是动态资源。 静态资源即指在服务器端真实存在并且能直接拿来展 阅读全文
posted @ 2022-08-27 18:17 专职 阅读(118) 评论(0) 推荐(0) 编辑
摘要:nginx基础配置实例需求分析 前面我们已经对 Nginx 服务器默认配置文件的结构和涉及的基本指令做了详细的阐述。通过这些指令的合理配置,我们就可以让一台 Nginx 服务器正常工作,并且提供基本的 Web 服务器功能。 接下来我们将通过一个比较完整和最简单的基础配置实例,来巩固下前面所学习的指令 阅读全文
posted @ 2022-08-27 11:55 专职 阅读(56) 评论(0) 推荐(0) 编辑
摘要:nginx配置文件nginx.conf的文件结构 从前面的内容学习中,我们知道 Nginx 的核心配置文件默认是放在 /usr/local/nginx/conf/nginx.conf,本次我们就来学习下 nginx.conf 的内容和基本配置方法。 配置文件内容 读取 Nginx 自带的 Nginx 阅读全文
posted @ 2022-08-27 09:28 专职 阅读(73) 评论(0) 推荐(0) 编辑
摘要:Go语言os包用法简述 Go语言的 os包中提供了操作系统函数的接口,是一个比较重要的包。顾名思义,os 包的作用主要是在服务器上进行系统的基本操作,如文件操作、目录操作、执行命令、信号与中断、进程、系统状态等等。 os包中的常用函数 Hostname Hostname函数会返回内核提供的主机名 f 阅读全文
posted @ 2022-08-26 14:30 专职 阅读(64) 评论(0) 推荐(0) 编辑
摘要:go语言big包 实际开发中,对于超出 int64 或者 uint64 类型的大数进行计算时,如果对精度没有要求,使用 float32 或者 float64 就可以胜任,但如果对精度有严格要求的时候,我们就不能使用浮点数了,因为浮点数在内存中只能被近似的表示。 Go语言中 math/big 包实现了 阅读全文
posted @ 2022-08-25 16:31 专职 阅读(74) 评论(0) 推荐(0) 编辑
摘要:包的基本概念 Go语言的包借助了目录树的组织形式,一般包的名称就是其源文件所在目录的名称,虽然Go语言没有强制要求包名必须和其所在的目录名同名,但还是建议包名和所在目录同名,这样结构更清晰。 包可以定义在很深的目录中,包名的定义是不包括目录路径的,但是包在引用时一般使用全路径引用。比如在GOPATH 阅读全文
posted @ 2022-08-24 16:54 专职 阅读(66) 评论(0) 推荐(0) 编辑
摘要:go语言多核并行化 Go语言具有支持高并发的特性,可以很方便地实现多线程运算,充分利用多核心 cpu 的性能。 众所周知服务器的处理器大都是单核频率较低而核心数较多,对于支持高并发的程序语言,可以充分利用服务器的多核优势,从而降低单核压力,减少性能浪费。 go语言实现多核多线程并发运行是非常方便的, 阅读全文
posted @ 2022-08-23 16:50 专职 阅读(156) 评论(0) 推荐(0) 编辑
摘要:go语言通道channel 如果说 goroutine 是 Go语言程序的并发体的话,那么 channels 就是它们之间的通信机制。一个 channels 是一个通信机制,它可以让一个 goroutine 通过它给另一个 goroutine 发送值信息。每个 channel 都有一个特殊的类型,也 阅读全文
posted @ 2022-08-23 08:56 专职 阅读(67) 评论(0) 推荐(0) 编辑
摘要:git 解决冲突的办法? git fetch git rebase origin/dev 手动解决冲突 git add . git commit -m "解决冲突" git rebase --continue git push origin xxx_dev -f 阅读全文
posted @ 2022-08-22 11:19 专职 阅读(25) 评论(0) 推荐(0) 编辑
摘要:并发概念 并发意味着程序在运行时有多个执行上下文,对应着有多个调用栈,我们知道每一个进程在运行时都有自己的调用栈和堆,有一个完整的上下文,而操作系统在调度进程的时候,会保存调度进程的上下文环境,等该进程获取到时间片后,在恢复该进程的上下文到系统中。 go语言轻量级线程 使用go关键字创建gorout 阅读全文
posted @ 2022-08-16 15:39 专职 阅读(48) 评论(0) 推荐(0) 编辑
摘要:通过类型信息创建实例 当已知 reflect.Type 时,可以动态地创建这个类型的实例,实例的类型为指针。例如 reflect.Type 的类型为 int 时,创建 int 的指针,即*int,代码如下: func main() { var a int // 获取a的反射类型对象 typeOfA 阅读全文
posted @ 2022-08-16 11:02 专职 阅读(286) 评论(0) 推荐(0) 编辑
摘要:通过反射获取值信息 当我们将一个接口值传递给一个 reflect.ValueOf 函数调用时,此调用返回的是代表着此接口值的动态值的一个 reflect.Value 值。我们必须通过间接的途径获得一个代表一个接口值的 reflect.Value 值。 一个reflect.Value值的CanSet方 阅读全文
posted @ 2022-08-16 10:28 专职 阅读(585) 评论(0) 推荐(0) 编辑
摘要:10.3通过反射获取类型信息 在 Go语言中通过调用 reflect.TypeOf 函数,我们可以从一个任何非接口类型的值创建一个 reflect.Type 值。reflect.Type 值表示着此非接口值的类型。通过此值,我们可以得到很多此非接口类型的信息。当然,我们也可以将一个接口值传递给一个 阅读全文
posted @ 2022-08-16 08:02 专职 阅读(264) 评论(0) 推荐(0) 编辑
摘要:nginx服务的命令行控制 此方式是通过 Nginx 安装目录下的 sbin 下的可执行文件 nginx(文件名) 来进行对 Nginx 状态的控制,我们可以通过 nginx -h 来查看都有哪些参数可以用 cd /usr/local/nginx/sbin ./nginx -h | 选项 | 作用 阅读全文
posted @ 2022-08-14 11:18 专职 阅读(68) 评论(0) 推荐(0) 编辑
摘要:正向代理和反向代理的区别 代理服务器如果配置在客户端即为正向代理,如果配置在服务端即为反向代理,和机器个数没有关系; 正向代理代替客户端去发送请求,反向代理代替服务端去接收请求 正式因为正向代理代替客户端去发送请求,正向代理服务器和客户端对外表现为一个客户端,所以正向代理隐藏了真实的客户端; 反向代 阅读全文
posted @ 2022-08-14 07:59 专职 阅读(145) 评论(0) 推荐(0) 编辑
摘要:日志切割时企业中常规动作,我们不会每天去手工执行一遍命令,通常是让脚本自己执行,于是我们可以将这个动作写进任务计划,每天凌晨自动执行。 #!/usr/bin/bash s_log="/usr/local/nginx/logs/access.log" d_log="/root/my_sh/nginx/ 阅读全文
posted @ 2022-08-13 18:06 专职 阅读(115) 评论(0) 推荐(0) 编辑
摘要:这种方式和简单的安装配置不同的地方在第一步,通过 ./configure 来对编译参数进行设置,需要我们手动来指定。那么都有哪些参数可以进行设置,接下来我们进行一个详细的说明。 PATH:是和路径相关的配置信息 with:是启动模块,默认是关闭的 without:是关闭模块,默认是开启的 我们先来认 阅读全文
posted @ 2022-08-13 14:55 专职 阅读(56) 评论(0) 推荐(0) 编辑
摘要:反射是众多编程语言中的一个非常实用的功能,它是一种能够自描述、自控制的应用,Go语言也对反射提供了友好的支持。 Go语言中使用反射可以在编译时不知道类型的情况下更新变量,在运行时查看值、调用方法以及直接对他们的布局进行操作。 由于反射是建立在类型系统(type system)上的,所以我们先来复习一 阅读全文
posted @ 2022-08-12 17:58 专职 阅读(74) 评论(0) 推荐(0) 编辑
摘要:Go语言反射,reflection Go语言中的反射是由 reflect 包提供支持的,它定义了两个重要的类型 Type 和 Value 任意接口值在反射中都可以理解为由 reflect.Type 和 reflect.Value 两部分组成,并且 reflect 包提供了 reflect.TypeO 阅读全文
posted @ 2022-08-12 15:50 专职 阅读(98) 评论(0) 推荐(0) 编辑
摘要:Go支持的IP类型 在Go的net包中定义了很多类型、函数和方法用来网络编程,其中IP的定义如下: type IP []byte 在net包中有很多函数来操作IP,但是其中比较有用的也就几个,其中ParseIP(s string) IP函数会把一个IPv4或者IPv6的地址转化成IP类型,请看下面的 阅读全文
posted @ 2022-08-12 11:16 专职 阅读(558) 评论(0) 推荐(0) 编辑
摘要:go中触发异常的场景有哪些? 空指针解析 下标越界 除数为0 调用panic函数 Printf、Sprintf、Fprintf函数的区别用法是什么? 都是把格式好的字符串输出,只是输出的目标不一样 Printf: 是把格式字符串输出到标准输出(一般是屏幕,可以重定向),Printf是和标准输出文件( 阅读全文
posted @ 2022-08-10 16:33 专职 阅读(237) 评论(0) 推荐(0) 编辑
摘要:简介 context.Context 是golang中独特的涉及,可以用来用来设置截止日期、同步信号,传递请求相关值的结构体。 与 Goroutine 有比较密切的关系。 在web程序中,每个Request都需要开启一个goroutine做一些事情,这些goroutine又可能会开启其他的 goro 阅读全文
posted @ 2022-08-08 17:55 专职 阅读(481) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示