日志库   自定义一个日志库。知识储备runtime.Caller()   该方法能够获取到打印的位置,文件的信息,行数等。   以下是该方法的使用,不必纠结太多,照着用就行。   唯一注意的是caller()中值的放入,该值会影响行数的显示,多测试几遍你就大概明白了。package main import ( "fmt" "runtime" "path/filepath" ) func
自定义RPC一、概述二、设计和实现1.结构设计2.代码实现
原创 2021-08-13 23:58:53
250阅读
接口与类结构体系-- [I]java.util.concurrent.Future<V> ---- [I]io.netty.util.concurrent.Future<V> ------ [AC]AbstractFuture, [I]ChannelFuture, [I]Promise -- [AC]AbstractFuture, [I]Promise
参考资料:参考demo参考视频1 参考视频2官方文档(推荐)官方文档中文版关于Kafka和rabbitMQ的安装教程,见本人之前的博客rocketMq的安装教程rocketMq仪表盘安装教程 重!!! 个人整理SpringCloud-Stream各部分概念、配置方法、配置项大全 Stream基本配置(Kafka、RabbitMQ和RocketMQ)Strea
在前面的课程中,我们由浅入深地讲解了 Netty 的基础知识和实现原理,并对 Netty 的核心源码进行了剖析,相信你已经体会到了 Netty 的强大之处。本身学习一门技术是一个比较漫长的过程,恭喜你坚持了下来。纸上得来终觉浅,绝知此事要躬行。你是不是已经迫不及待想在项目中使用 Netty 了呢?接下来我会带着你完成一个相对完整的 RPC 框架原型,帮助你加深对 Netty 的理解,希望你能亲自动
目录第1步:准备源码第2步:安装rpm-build第3步:编写编译配置文件第4步:编译rpm包第1步:准备源码以nginx为例:nginx: download第2步:安装rpm-buildyum install rpm-build -y #默认自带 rpmbuild -ba xxx #后面的xxx自定义,执行会报错,不用管,只要在当前目录生成rpmbuild目录即可&nbs
go可以利用切片,实现自定义的排序 1 声明一个切片类型 2 对切片类型绑定 Len Less Swap三个方法 3 调用sort.Sort方法 package main import ( "fmt" "math/rand" "sort" "strconv" "time" ) type Studen
转载 2021-01-27 11:17:00
406阅读
2评论
GO 自定义Cache DEMO package main import ( "fmt" "sync" "time" ) // 缓存对象 type CacheItem struct { Value interface{} // 实际缓存的对象 TTL time.Duration // 存活时间 Cr ...
转载 2021-10-16 15:24:00
297阅读
2评论
1.环境go 1.14github.com/prometheus/client_golang v1.7.12.安装client-golonggo get -u github.com/prometheus/client_golang3.metricmain.gopackage mainimport ( "flag" "log" "net/http" "time" "github.com/p
原创 2022-05-29 13:44:29
288阅读
工程图函数权限函数大写字母开头,其他包可以访问该函数函数小写字母开头,同包可以访问,其他包不能访问util.goackage mycomimport "fmt"/** public函数-要大写字母开头 */func IsBlank(str string) bool { return isEmpty(str);}/** 小写字母开头 同包可以访问 其他包不能访问 */func isEmpty(str string) bool { if len(str)
原创 2021-08-25 10:53:07
442阅读
工程图函数权限函数大写字母开头,其他包可以访问该函数函数小写字母开头,同包可以访问,其他包不能访问u ) bool { if len(str)
原创 2022-02-15 18:13:38
402阅读
Go语言与C/C++类似,C++可通过typedef关键字自定义数据类型(别名、定义结构体等),Go语言则通过type关键字可实现自定义类型的实现1、自定义类型格式用户自定义类型使用type,其语法格式为:type newType oldTypeoldType可以是自定义类型、预声明类型、未命名类型中的任意一种newType是新类型标识符,与oldType具有相同的底层类型,并且都继承了底层类型的
Go的error比较灵活.但是自身对error处理的机制有不太好用,我们可以自定义错误输出: 只要所有实现了 Error() 方法的对象都可以, 这里给个比较简单的demo,后续整理一个error的优化封装:package main import ("fmt") type NameEmtpyError struct {     name string}//NameEmtpyError实现了 
转载 2021-01-19 18:51:30
936阅读
2评论
go导入自定义库ps:go貌似不支持相对路径导入库,没仔细查找资料创建go项目创建一个项目目录hello,在h
原创 2022-05-19 10:07:38
756阅读
package mainimport ( "errors" "fmt")func readConf(name string) (err error) { if name == "config.ini" { return nil } else { // 自定义错误 return errors.New("读取文件错误") }}func test() { err := readConf("config.ini") if err != nil { panic(err).
原创 2022-01-19 10:37:02
80阅读
main.gopackage mainimport ( "fmt" "html/template" "net/http")type User struct { Name string gender string Age int}func sayHello(w http.ResponseWriter, r *http.Request) { // 定义函数 k := func (name string) (string, error) { return name + "is
原创 2022-01-19 10:41:27
588阅读
package mainimport ( "errors" "fmt")func readConf(name string) (err error) { if name == "config.ini" { return nil } else { // 自定义错误 return errors.New("读取文件错误") }}func test() { err := readConf("config.ini") if err != nil { panic(err).
原创 2021-01-19 19:57:27
278阅读
main.gopackage mainimport ( "fmt" "html/template" "net/http")type User struct { Name string gender string Age int}func sayHello(w http.ResponseWriter, r *http.Request) { // 定义函数 k := func (name string) (string, error) { return name + "is
原创 2021-01-14 07:25:44
580阅读
# Go语言自定义模块 Go语言是一种开源编程语言,由Google开发,旨在提高开发效率。在Go语言中,模块(Module)是用于管理包和依赖的一种机制。本文将介绍如何自定义Go语言模块,并提供示例代码以帮助理解。 ## 什么是Go模块? Go模块是Go 1.11引入的一个特性,它允许开发者将代码组织为一个或多个包(Package),并管理其版本和依赖。使用Go模块,开发者可以更容易地共享、
原创 2024-08-31 09:46:51
44阅读
基本语法 基本语法 -- 变量(1)变量的概念(2)变量的声明(3)变量的注意事项基本语法 -- 常量(1)常量的声明(2)iota 基本语法 – 变量(1)变量的概念变量是为存储特定类型的值而提供给内存位置的名称。在go中声明变量有多种语法。所以变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变。(2)变量的声明var名称类型是声明单个变量的语法。以字母或下划线开头,由一个或
转载 2023-09-01 07:43:46
100阅读
  • 1
  • 2
  • 3
  • 4
  • 5