golang打印输出fmt和log

fmt %v 值的默认格式表示。当输出结构体时,扩展标志(%+v)会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %t 单词true或false %% 百分号 %p 表示为十六进制,并加上前导的0x %s 直接输出字符串或者[]byte %q 该值对应的双引号括起来的go语法字符串字面值,必要时会采用安全的转义表示 %x 每个字节用两字符十六进制数表示(使用a-f) %X 每个字节用两字符十六进制数表示(使用A-F) %b 表示为二进制 %c 该值对应的unicode码值 ...阅读全文

简书 2020-08-27 17:32:43 无拘无束的猪

Golang编程百例及详细答案(一)

> 本文参考 [嗨客网](https://haicoder.net) Java [实战](https://haicoder.net/case/index.html) # **Golang编程百例及详细答案** # **前言** 本篇文章是关于 Golang 编程百例的题目以及详细的解题思路,每道题都附有答案链接,答案解题的每个步骤到运行结果都十分详细,十分适合小白拿来练习,也十分适合准备面试的各位复习下 Golang 基础,这篇文章我会不断更新,题目都是对应 Golang 中...阅读全文

Go语言中文网 2020-08-27 15:44:33 haicoder_ibai

Golang 实现自动清理日志,可用于生产环境 (1)

功能介绍 通过配置清理日志规则,配合cron,实现磁盘达到阈值自动清理 支持自定义邮件收件人 支持规则自定义 支持全局规则设定 禁止根目录和一级目录 支持debug,该模式下,只显示满足条件的文件,但不执行删除或清空 开发环境 Goland 2020.1 go version go1.14.3 darwin/amd64 Mac 规则说明 - dir : /workspace/logs/webapps suffix : .log beforeTime : 1300 mode : rm retain...阅读全文

简书 2020-08-27 13:32:44 老王知识加油站

for-range造就循环永动机?快来看看go中for-range的那些事!

循环永动机 Q1: 如果我们在遍历数组的同时修改数组元素,能否得到一个永远都不会停止的循环呢? func main() { arr := []int{1, 2, 3} for _, v := range arr { arr = append(arr, v) } fmt.Println(arr) } // 输出: 1 2 3 1 2 3 上述代码的输出意味着循环只遍历了原始切片中的三个元素,我们遍历切片时追加的元素不会增加循环的执行次数, 所以循环最终还是停了下来 答: 对于所有的range循环,...阅读全文

简书 2020-08-27 13:32:44 新世界杂货铺

windows和linux平台下后台运行程序的实现(守护进程、后台任务)

一、 前言 Windows 和 Linux平台下有时候需要后台启动, 脱离界面(抛去黑色cmd和脱离终端)运行程序并常驻内存;同时能够具备一定的日志记录和异常自启动等特点。 对于后台启动和守护进程概念上不做过多区分;当然我们可以通过使用Web服务器托管或者直接运行启动;但这些与后台运行相违背 由于笔者是golang开发的web项目,并且已经打包成可执行文件,就简单了解下目前已知的偏后端后台启动的几种方式(前端的推荐一个pm2挺不错的)。当然通过docker部署是个不错的策略,但是与今天讨论的话题...阅读全文

简书 2020-08-27 13:32:44 惟月慎行

Golang 交叉编译

## Go 交叉编译 > 说明: 以下的交叉编译主机是在 x86_64 Ubuntu 16.04 平台下进行的. Go 交叉编译涉及的编译参数: - `GOARCH`, 目标平台的 CPU 架构. 常用的值 `amd64`, `arm64`, `i386`, `armhf` - `GOOS`, 目标平台, 常用的值 `linux`, `windows`, `drawin` (macOS) - `GOARM`, 只有 `GOARCH` 是 `arm64` 才有效, 表...阅读全文

Go语言中文网 2020-08-27 13:07:58 tiechui1994

2020-08-26:裸写算法:树的非递归先序遍历。

福哥答案2020-08-26: 方法 1:迭代 算法 从根节点开始,每次迭代弹出当前栈顶元素,并将其孩子节点压入栈中,先压右孩子再压左孩子。 在这个算法中,输出到最终结果的顺序按照 Top->Bottom 和 Left->Right,符合前序遍历的顺序。 算法复杂度 时间复杂度:访问每个节点恰好一次,时间复杂度为 O(N) ,其中 N 是节点的个数,也就是树的大小。 空间复杂度:取决于树的结构,最坏情况存储整棵树,因此空间复杂度是 O(N)。 方法 2:莫里斯遍历 方法基于 莫里斯的文章,可以优...阅读全文

简书 2020-08-27 00:32:45 福大大架构师每日一题

首次!这样搭建SpringBoot脚手架,整合OSS效果翻倍

1. 前言 文件服务器是一个应用必要的组件之一。最早我搞过FTP,然后又用过FastDFS,接私活的时候我用MongoDB也凑合凑合。现如今时代不同了,开始流行起了OSS。 Gitee: gitee.com/felord/kono day06 分支 欢迎Star GitHub: github.com/NotFound403… day06 分支 欢迎Star 2. 什么是OSS 全称为Object Storage Service,也叫对象存储服务,是一种解决和处理离散单元的方法,可提供基于分布式系...阅读全文

简书 2020-08-27 00:32:44 磕代码的阿轩

golang面试

答案会在后续更新cch关于知乎go面试题的部分答案:https://xargin.com/answers-for-some-interview-questions/进程、线程、协程、goroutine区别,windows的协程和goroutine区别go有用过什么框架或者包go的调度、GMP什么运行mysql相关的golang包redis相关的包、redigo、goredis,redis的haspmap,zset原理goroutine是连续栈,可以扩容,那么Linux线程分配的栈不能类似扩容机制...阅读全文

简书 2020-08-27 00:32:41 无拘无束的猪

密码学入门之密码

最近在研读《图解密码技术》这本书,将有一系列的密码学学习笔记,涉及到密码的相关概念、对称加密、非对称加密、单向散列函数、消息认证码、数字签名、数字证书等内容,同时涉及到代码部分也会使用Golang进行展示,感兴趣的可以关注更新哦。好了,今天先讲讲密码学中的一些概念性的问题。 1.密码学简介 2.对称加密 3.分组加密模式 4.非对称加密 5.单向散列函数 6.消息认证码 7.数字签名 8.证书 9.SSL/TLS 发送者、接收者和窃听者 请想象一个Alice向Bob发送电子邮件的场景。在这个场景...阅读全文

GO语言实现 一 栈和队列

线性表中,栈和队列是非常重要的两种数据结构,本文将就这两种数据结构进行 golang语言实现 一.栈的实现 我们需要实现如下几个方法 push() 向栈中压入一个元素 pop() 从栈顶取出一个元素 isEmpty() 判断栈是否为空 length() 获取栈中元素的数目 peer() 查询栈顶元素 我们需要注意 peer() 方法并不会将栈顶元素删除 数组实现如下: type stack struct { cache []int } func (sk *stack) push(n int) {...阅读全文

简书 2020-08-26 19:32:40 YXCoder

golang mysql实现

按照python思想,简单实现新增、查询、修改、删除接口 package utils import ( "fmt" "strings" "database/sql" _ "github.com/go-sql-driver/mysql" ) // DBWorker ... type DBWorker struct { Dsn string Db *sql.DB } // 内部通用方法提取 func commomOperate(db *sql.DB, sql string, args ...inte...阅读全文

简书 2020-08-26 17:32:47 最爱啥都想

Golang unsafe初探——根据字段算出结构体地址

观察代码运行结果,理解golang对象与字段地址的偏移计算 type Buffer struct { buf [1500]byte n int8 } func main() { instance := new(Buffer) { println(instance) println(instance.buf[:]) println(&instance.buf[0]) b := (*Buffer)(unsafe.Pointer(&instance.buf[0])) // 根据buf字段算出实例对象的...阅读全文

简书 2020-08-26 17:32:47 小龙虾0o0

Go语言入门

> 本文参考 [嗨客网](https://haicoder.net/) golang 教程 # Go语言入门 ## Go语言入门教程 很多人将 **[Go 语言](http://haicoder.net/golang/golang-tutorial.html)** 称为 21 世纪的 **[C 语言](http://haicoder.net/c/c-tutorial.html)**,因为 Go 不仅拥有 C 语言的简洁和性能,而且还很好的提供了 21 世纪互联网环境下服务端开...阅读全文

Go语言中文网 2020-08-26 15:07:47 haicoder_ibai

Cenos 下非Docker方式安装Pgwatch2遇到问题及解决办法

参考文章:https://blog.51cto.com/bigboss/2131399 按照文章中的步骤,我们到了第四大步,安装pgwatch2 执行/app/pgwatch2/pgwatch2/.build_gatherer.sh脚本出现问题: 网址打不开,链接不到 build_gatherer.sh脚本依赖同目录下get_dependencies.sh 脚本(该脚本内容是下载依赖),其中里面部分github上的内容已经没了,网址打开报错404.例如: https://github.com/c...阅读全文

简书 2020-08-26 13:32:40 机智的柠檬

golang日志系统

什么不记录 通常,您不应记录任何形式的敏感业务数据或个人身份信息。这包括但不限于: 名字 IP地址 银行卡号码 从工程的角度来看,这些限制会使日志的用处不大,但是它们使您的应用程序更安全。在许多情况下,GDPR和HIPAA等法规可能会禁止记录个人数据。 日志包介绍 Go标准库具有一个内置log软件包,可提供大多数基本日志记录功能。尽管它没有日志级别(例如调试,警告或错误),但它仍然提供了设置基本日志策略所需的一切。 这是最基本的日志记录示例: package main import "log" ...阅读全文

简书 2020-08-25 23:32:40 追梦人在路上不断追寻

Dockerfile文件万字全面解析

Dockerfile是一个文本文件,包含一些Docker指令。执行docker build,Docker就会执行Dockerfile里面的指令,来自动创建镜像。 用法 image-20200822110105335_副本.png Dockerfile里面的指令可以访问context这些文件。 context是递归的,PATH包含所有子目录,URL包含所有子模块。 例子,把当前目录当做context, $ docker build . Sending build context to Docker...阅读全文

简书 2020-08-25 22:32:42 东方888888