首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Go每日一库

    Go每日9:log

    虽然有时可以用fmt输出些信息,但是灵活性不够。Go 标准提供了个日志log。本文介绍log的使用。 快速使用 log是 Go 标准提供的,不需要另外安装。 log还定义了个Lstdflag,为Ldate | Ltime,这就是我们默认的选项。 自定义 实际上,log为我们定义了个默认的Logger,名为std,意为标准日志。 实现 log的核心是Output方法,我们简单看下: // src/log/log.go func (l *Logger) Output(calldepth int, s string) error 前缀和日志内容先写到这个buf中,然后统写入Writer,减少 io 操作。 总结 log实现了个小巧的日志,可供简单使用。本文介绍了它的基本使用,简单地分析了下源码。

    53630编辑于 2023-09-15
  • 来自专栏KEN DO EVERTHING

    每日题(9

    点击上方“java从心”,置顶公众号 每天进步丢丢,连接梦与想 生活有多美好,取决于你对它有多热爱 上题回顾与解析 public class Question8 { public static 01111111111111111111111111111111 + 1 = 10000000 000000000000000000000000 即Integer.MAX_VALUE + 1 = Integer.MIN_VALUE 想不到吧,这个记住就好了 每日题 public class Question9 { public static void main(String[] args) { int minutes = 0 ;

    45810发布于 2019-01-17
  • 来自专栏Python数据结构与算法

    python每日练(9)

    ,它可以将个字符串按照指定的分隔符拆分成多个子串,并返回个包含子串的列表。 16, 25] 在这个例子中,我们将个列表中的数字进行平方,并利用map()函数生成个迭代器。 举个例子,对个包含10个整数的列表进行升序排序,可以这样写: my_list = [3, 6, 1, 8, 2, 9, 4, 7, 5, 0] my_list.sort() print(my_list ) 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 如果要进行降序排序,只需将reverse参数设置为True: my_list = [3, 6, 1, 8, 2, 9, 4, 7 1, 2, -3, 4, -5, 6, 7, -8, -9] 这里的key参数是个函数abs,表示按照列表中元素的绝对值进行排序。

    48110编辑于 2024-01-18
  • 来自专栏番茄_C语言

    c语言每日练(9)

    前言: 每日练系列,每期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日练系列会持续更新,暑假时三天之内必有更,到了开学之后,将看学业情况更新。 =NULL,因此个有误就得报错。 栈溢出:属于缓冲区溢出的种。 首先,猜中不能被算作伪猜中,那么旦猜中,那两个被猜中的槽就可以看作配对成功,不用再考虑,可以把它们置为-1。 在后期的判定中,遇到-1便continue切换槽位即可,而旦伪猜中成功,那两个槽也相当于废掉了,不能在同个槽伪猜中多次,这是个隐藏规则,所以把这两个槽也置为-1 #include<stdio.h

    34010编辑于 2024-01-19
  • 来自专栏code人生

    每日:RabbitMQ

    RabbitMQ简介 RabbitMQ 是个广泛使用的开源消息队列系统,它实现了高级消息队列协议(AMQP)标准,为分布式应用程序提供了强大的消息传递功能。 工作流程 RabbitMQ 的工作流程如下: •生产者将消息发布到个或多个交换机。•交换机根据绑定规则将消息路由到个或多个队列。•消费者订阅队列并接收消息。 安装 RabbitMQ 客户端 首先,您需要使用 Go 的包管理工具安装 github.com/rabbitmq/amqp091-go 包,可以使用以下命令: go get github.com/rabbitmq 打开通道 在连接上打开个通道(channel),用于进行消息传递操作。通道是轻量级的通信路径,允许您在单个连接上创建多个通道。 定义队列 在发送和接收消息之前,您需要定义个队列。如果队列不存在,它将被创建。

    58320编辑于 2023-10-19
  • 来自专栏C语言入门到精通

    编程小白 | 每日练(9

    “要成为绝世高手,并非夕,除非是天生武学奇才。但是这种人…万中无” ——包租婆 这道理放在编程上也并受用。 当然是每天都练习道题目!! 每日练 ? 例9:要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70-84分,C等为60-69分,D等为60分以下。成绩的等级由键盘输入。 解题思路:这是个多分支选择问题,根据百分制分数将学生成绩分为4个等级,如果用if语句来处理至少需要3层嵌套的if,进行3次检查判断。用switch语句,进行次检查即可得到结果 代码演示: ? 我们常说“学而不思则罔”,和学习编程知识样,我们只有在学习的同时加以总结与思考,才能对编程有更系统和深入地了解,学到的知识才真正能为自己所用。

    3983129发布于 2019-08-09
  • 来自专栏code人生

    每日:protojson

    google.golang.org/protobuf/encoding/protojson 是 Go 语言中的,用于处理 Protocol Buffers(protobuf)和 JSON 之间的转换 以下是该些主要功能: •将 protobuf 消息转换为 JSON 格式:这是通过 Marshal 或 MarshalOptions.Marshal 函数实现的。 这些函数接收个 protobuf 消息并返回个 JSON 格式的字符串。 这些函数接收个 JSON 格式的字符串和个 protobuf 消息的指针,然后将 JSON 数据解析并填充到 protobuf 消息中。 seal_name = 5; string seal_number = 6; string sign_hash = 7; string date = 8; Base base = 9;

    1.1K10编辑于 2023-10-16
  • 来自专栏code人生

    每日:sonic

    sonic是个由字节跳动开发并开源的 JSON 解析,由 JIT (即时编译)和 SIMD (单指令流多数据流)来加速序列化/反序列化。 3.对于 Golang 语言编译优化的不足,决定使用 C/Clang 编写和编译核心计算函数,并且开发了套 asm2asm[2] 工具,将经过充分优化的 x86 汇编代码转换为 Plan9 格式,最终加载到 在细节上,进行了些进步的优化: 1.由于 Golang 中的原生汇编函数不能被内联,其成本甚至超过了 C 编译器的优化所带来的改善。 所以在 JIT 中重新实现了组轻量级的函数调用:•全局函数表+静态偏移量,用于调用指令•使用寄存器传递参数2.Sync.Map 开始被用来缓存编解码器,但是对于准静态(读远多于写),元素较少(通常不足几十个 )的场景,它的性能并不理想,所以使用开放寻址哈希和 RCU 技术重新实现了个高性能且并发安全的缓存。

    1.1K10编辑于 2023-10-16
  • 来自专栏code人生

    每日:sqlx

    sqlx 是个用于增强 Go 语言标准中 database/sql 包的第三方,它提供了些额外的功能和工具,使得与数据交互更加方便和灵活。 连接数据 在使用 sqlx 之前,你需要先通过 database/sql 包来连接到数据。然后,你可以使用 sqlx.Open 函数来打开个数据连接,并将连接传递给 sqlx.DB 对象。 你可以使用 db.Query 或 db.Queryx 方法来执行查询操作,返回个 *sql.Rows 或 *sqlx.Rows 对象。 你可以使用 db.Exec 方法来执行这些操作,它返回个 sql.Result 对象。 它提供了些方便的方法来处理查询结果、参数绑定以及基本的数据操作,使得与数据交互更加高效和可维护。

    70230编辑于 2023-10-16
  • 来自专栏code人生

    每日:memcache

    Memcache 是个高性能、分布式的内存缓存系统,常用于缓存数据查询结果、API调用结果、页面内容等,以提升应用程序的性能和响应速度。 它适用于那些需要频繁读取的数据,例如数据查询结果。 2.分布式存储: Memcache 支持分布式存储,可以在多台服务器上部署多个 Memcache 实例,这样可以扩展缓存容量和处理能力。 8.网络协议: Memcache 使用基于文本的协议进行通信,可以通过 Telnet 或客户端与 Memcache 进行交互。 9.扩展性: Memcache 可以水平扩展,通过增加新的节点来提高缓存容量和性能。 10.持久化支持: Memcache 不支持数据的持久化存储,数据只存储在内存中,不会写入磁盘。 使用 Memcache 通常需要将数据从数据或其他数据源读取到缓存中,然后在应用程序中读取缓存数据,从而提升读取性能。

    80020编辑于 2023-10-16
  • 来自专栏code人生

    每日:xorm

    xorm 是个功能强大的 Go 语言 ORM(对象关系映射),提供了许多特点和功能,使得与关系型数据的交互更加便捷、高效。 以下是 xorm 的些主要特点: 1.简化数据操作: xorm 封装了数据操作,使得 CRUD(增删改查)等常见操作更加简单,开发者可以专注于业务逻辑而不必过多关注底层的数据操作。 5.事务支持: xorm 支持事务操作,通过 NewSession 方法来创建会话,可以使用事务来确保组操作的原子性和致性。 9.多数据支持: 可以同时连接多个不同类型的数据,进行跨数据操作。10.高级特性: 支持数据连接池、数据引擎的选择、连接保活等高级特性。 然后,你可以使用 xorm.NewEngine 函数来创建个 xorm.Engine 对象,用于执行数据操作。

    1.2K20编辑于 2023-10-16
  • 来自专栏code人生

    每日:JWT

    JWT(JSON Web Token)是种开放标准(RFC 7519),它定义了种紧凑且自包含的方式,用于在各方之间安全地传输信息作为 JSON 对象。 以下是 JWT 的些主要特性: 1.紧凑(Compact):由于其小的尺寸,JWT 可以通过 URL、POST 参数或者在 HTTP header 中发送,这使得 JWT 非常适合用于通过 HTTP/ 2.自包含(Self-contained):JWT 的载荷中包含了所有用户需要的信息,避免了多次查询数据。 以下是使用 github.com/golang-jwt/jwt 创建和解码 JWT 的 Go 语言示例: 首先,你需要安装 golang-jwt/jwt ,可以通过以下命令进行安装: go get JWT,并指定了签名方法和声明;然后,使用个密钥签名并获取完整编码的 token;最后,我们解析 token,并验证签名方法和声明。

    53620编辑于 2023-10-16
  • 来自专栏code人生

    每日:gosec

    gosec 是个用于在 Go 代码中查找安全问题的开源工具,它可以帮助发现可能的漏洞和潜在的安全风险。以下是关于 gosec 的详细介绍: 1. 工具概述: gosec 是个静态分析工具,用于扫描 Go 代码以查找潜在的安全问题。它可以识别常见的代码漏洞、敏感信息泄露和其他安全问题,帮助开发人员提前发现并修复潜在的安全隐患。 2. 使用示例 以下是个使用 gosec 的简单示例: gosec ./... 此命令将在当前目录及其子目录中扫描 Go 代码,并报告发现的任何安全问题。 5. 以下是些常见的配置选项: 7.1 配置文件 gosec 支持 YAML 和 JSON 格式的配置文件。 可以创建个名为 .gosec.yaml 或 .gosec.json 的配置文件,并在其中指定要使用的规则、排除的文件、自定义规则等。

    59220编辑于 2023-10-16
  • 来自专栏code人生

    每日:embed

    访问嵌入文件: 使用 embed 包嵌入的文件是个 string 、 []byte 或 embed.FS 类型的变量,你可以直接在代码中访问它们。在运行时,这些变量会被初始化为嵌入文件的内容。 同时,它只能嵌入在 Go 源代码文件同目录或子目录下的文件或目录。 总之,go embed 是个强大的特性,使得在 Go 代码中嵌入文件变得更加方便和简单,特别是在需要将静态资源或配置文件包含在应用程序中时。

    68110编辑于 2023-10-19
  • 来自专栏code人生

    每日:Prometheus

    它是个非常强大和灵活的工具,用于监控应用程序和系统的性能,并根据预定义的规则触发警报。 每个时间序列都由组键值对唯标识,这使得数据非常灵活且容易查询。 4.持久性存储: Prometheus 使用本地存储引擎来保存时间序列数据,这使得它能够高效地存储大量数据,并且不需要依赖外部数据。它还支持数据快照和备份。 3.Client Libraries: Prometheus 提供各种语言的客户端,允许应用程序开发者轻松将度量数据暴露给 Prometheus。这些可用于记录自定义应用程序指标。 步骤2:引入 Prometheus Go 客户端 Prometheus 提供了个用于 Go 应用程序的客户端,你需要引入这个以便在应用程序中生成度量数据。

    77320编辑于 2023-10-19
  • 来自专栏code人生

    每日:cmp

    标准 cmp 原文在这里[1] go 1.21 新增 cmp 包提供了与有序变脸比较相关的类型和函数。 | ~uint16 | ~uint32 | ~uint64 | ~uintptr | ~float32 | ~float64 | ~string } Ordered 是个约束 请参阅 Compare 函数,以获取致的方式来比较 NaN 值。 github.com/google/go-cmp/cmp github.com/google/go-cmp/cmp 是个 Go 语言中用于比较任意两个值是否相等的。 以下是些示例: 使用自定义比较选项 opts := cmp.Options{ cmp.IgnoreFields(Person{}, "Age"), // 忽略 Person 结构体的 Age

    65210编辑于 2023-10-19
  • 来自专栏code人生

    每日:cobra

    github.com/spf13/cobra 是个用于构建强大的命令行应用程序的 Go 语言。 以下是 cobra 的主要特性和用法示例: 主要特性 1.子命令支持:cobra 允许您创建包含多个子命令的命令行工具。这使得您可以组织和管理大型 CLI 应用程序。 6.内置的有效命令行解析:cobra 使用标准的 flag 包进行命令行解析,同时提供更高级的功能。 用法示例 以下是个简单的示例,演示了如何使用 cobra 创建个简单的命令行工具: package main import ( "fmt" "github.com/spf13/cobra 这只是个简单的示例,cobra 可以轻松处理更复杂的命令行接口,包括添加标志、参数、子命令和自定义用法信息。

    56620编辑于 2023-10-19
  • 来自专栏技术开源分享

    go每日

    go本身的包os/exec包含了对应的实现,接下来我们举个例子说明下 执行 go version 打印go版本 package main ​ import ( "fmt" "log" 例如设置工作目录,设置执行超时等特殊需求,这个时候原生的编码就会让人很难受。 今天在这里推荐个可以在linux/windows/darwin 上执行命令的golang开源,这个的Star虽然不是很高,但是封装后的api使用起来还算舒服。 还是通过几个例子来进行下说明 shell脚本 输入文本 package main ​ import ( "fmt" ​ "github.com/commander-cli/cmd" ,大家起学习进步。

    1.3K00发布于 2021-04-04
  • 来自专栏code人生

    每日:Gin

    Gin是个用Go语言编写的Web框架,它旨在提供高性能、轻量级的解决方案。 可以使用Go语言的包管理工具go get来安装: go get -u github.com/gin-gonic/gin 示例代码 以下是个简单的Gin框架示例代码: package main import "github.com/gin-gonic/gin" func main() { // 创建个Gin实例 r := gin.Default() // 定义路由处理函数 , }) }) // 启动HTTP服务 r.Run(":8080") } 在这个示例中,我们创建了个简单的Gin实例,定义了个GET路由"/hello",当请求该路由时 ,返回个JSON格式的响应。

    60310编辑于 2023-10-16
  • 来自专栏C语言入门到精通

    基础知识 | 每日面(9

    如果个全局变量初始值为 “零”, 它可否作为空指针或浮点零? 小林:具有 “静态” 生存期的未初始化变量可以确保初始值为零, 就像程序员键入了 “=0” 样。 用 calloc() 获得的内存为全零, 但这对指针和浮点值不定有用。 有时候,正是那些意想不到之人,成就了无人能成之事。 ——图灵

    4413129发布于 2019-12-19
领券