go lang
望天hous
虚心学习
展开
-
Go 语言中SplitByChars 方法
在 Go 语言中,标准库中的 strings 包并没有直接提供一个按照多个字符分割字符串的函数,类似于 C# 中的 split() 函数,该函数可以指定多个分隔符。但是,你可以通过一些组合函数和逻辑来实现相同的效果。原创 2024-09-11 15:02:55 · 279 阅读 · 0 评论 -
go下载tools不成功
如果您使用的 Go 简单处理在 cmd中命令两个命令go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.io,direct然后从其 vsCode 开始下载 就可以了原创 2022-03-03 17:26:42 · 346 阅读 · 0 评论 -
go lang连接操作pg数据库 简单示例
package mainimport ("database/sql"_ "github.com/lib/pq" // 根据自己的文件位置设置 https://download.csdn.net/download/weixin_43542114/15133725)//测试连接一下 pg 数据库func TestLilnkPgDatabase() { db, err := sql.Open("postgres", "user=postgres password=123456 dbname=db原创 2021-02-08 11:37:05 · 919 阅读 · 0 评论 -
go lang编程练习 TCP 扫瞄器
端口扫描 测试结构体package TestPortimport ( "errors" "fmt" "net" "sort" "strconv" "strings" "sync")/* 功能需求: 尽可能在设备承受负载情况下 尽快的TCP扫描 指定ip 下的端口是否打开0. 根据 go 下边的net 包进行去 Dial 方法就去测试1. 使用 goroutine 并发模式去遍历。2. 使用channel 保证线程之间的操作安全3. 使用flag 包进行接收参数信息,原创 2021-02-08 09:05:35 · 149 阅读 · 0 评论 -
go lang web 学习第 五天 备忘
漏油Controller 的角色main():设置工作类Controller : 静态资源的加载 把不同的请求送到不同的 controller 进行处理漏油的结构根据请求,匹配最具体的handler 例子:相对路径写法:上级: …/上上级:…/…/上上上级:…/…/…/上上上上级:…/…/…/…/main 主文件package mainimport ( "net/http" "web-test/oilLeak/controller")func main() {原创 2021-01-28 17:44:44 · 116 阅读 · 0 评论 -
go lang 连接sqlserver 的CRUD 增删改查 自认为函数方法比较混乱 备忘
三个主文件 main 包运行命令: go run .\main.go .\model.go .\server.go第一个:/* 查询 sql.DB 类型上用于查询的方法有: Query QueryRow QueryContext QueryRowContext Query QueryContext 返回的类型 type Rows struct {} Rows的方法 func(rs *Row) Close() error func (rs *Row) .原创 2021-01-26 14:10:29 · 554 阅读 · 0 评论 -
golang Web网上学习三 备忘笔记
len with如何自定义函数template.Funcs(funcMap FuncMap) *Templatetype FuncMap [string] interface{}value 是函数 :可以有任意数量的参数,返回单个值或者 单个值+error步骤: 创建一个FuncMap (map类型)key 是函数名 value 就是函数把FuncMap 附加到模板上例子:package mainimport (“net/http”“text/template”“time”原创 2021-01-25 16:38:06 · 153 阅读 · 0 评论 -
go lang 学习 Web 编程 二
综合练习示例:package mainimport (“html/template”“log”“net/http”)func main() {localTemplatePtr := loadTemplate()http.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) {urlStr := r.URL.PathurlStr = urlStr[1:]destTem := localTemplatePtr.Look原创 2021-01-22 17:31:15 · 102 阅读 · 0 评论 -
go web 学习第二天 笔记备忘
HTTP 请求1.Request请求2.URL3. Header4.BodyHTTP Request 和 HTTP Response(请求和响应)他们具有相同的结构:请求(响应)行0个或者多个Header空行可选的消息体(Body)Request (是个struct) 代表了客户端发送得 HTTP 请求消息重要字段:URL Header Body Form PostForm MultiparForm也可以通过Request 的方法访问请求的 Cookie URL User原创 2021-01-12 17:15:04 · 261 阅读 · 0 评论 -
go web 学习 第一课 开启一个简单的服务
go web 学习 第一课 开启一个简单的服务示例:package mainimport “net/http”func main() {http.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) {rw.Write([]byte(“你好啊 hello!”))})http.ListenAndServe(“localhost:8081”, nil)}任务要求了解 net/hettp 包使用详情第二课: 如何处理(Ha原创 2020-12-31 17:18:02 · 150 阅读 · 0 评论 -
golang 实现crc效验和整形数据转化成byte
如有不对多加指正//CRC效验func CRCCheck(buf []byte, length int) uint16 { var ( CRC uint16 R byte i, j, k, m int ) if buf == nil || len(buf) < length || length <= 0 { return CRC } for i = 0; i < length; i++ { R = buf[i] for原创 2020-12-29 09:10:24 · 392 阅读 · 0 评论 -
golang 学习用数组模拟栈 参考
数组模拟栈操作 感觉有待节俭package stackShedtype stack struct { maxNumber int //栈的最大容量 spliceStackFloat []float32 spliceStackStr []string stackType byte //1为数字栈 其他位字符串栈 stackTop int //栈顶初始化为-1}//创建一个栈 stackType:1为数字栈 其他位字符串栈func原创 2020-12-28 13:24:13 · 176 阅读 · 0 评论 -
go lang练习几种常见排序方法 ,其他语言也可以如法炮制
主要是理解思想,代码不需要死记硬背:自己备忘。。。。go代码如下//冒泡排序方法 arr待排序切片 directSort排序方向1升序2倒叙 其参数他默认升序func BubSort(arr []int, directSort byte) { if arr == nil || len(arr) == 0 { return } if directSort == 2 { for idx := 0; idx < len(arr); idx++ { for j := idx原创 2020-12-26 20:10:36 · 106 阅读 · 0 评论 -
goLang 实现根据帧头帧尾截取数据 备忘
/* 1.此类想做成数据缓冲区的功能能,能够接受网络包进行数据缓冲区,根据 2. 根据帧头帧尾去能够完成数据截取,老的思路是去掉没有用的数据把数据都一个一个移位 3. 功能测试 目前功能正常*/package queueimport ( "sync")type queue struct { head int foot int arr []byte mutexP *sync.Mutex headArr []byte footArr []原创 2020-12-25 08:59:58 · 626 阅读 · 0 评论 -
go lang 中用切片实现环形队列
嗯嗯 还是有点东西的:备忘package queueimport ( "sync")type queue struct { head int foot int arr []int mutexP *sync.Mutex}func CreateQueue(len int) queue { qu := queue{ head: 0, //包含此下标值 foot: 0, // 不包含此下标值 mutexP: &sync.Mutex{}, a原创 2020-12-23 13:23:31 · 218 阅读 · 1 评论 -
go lang 连接redis 数据库 示例
redis 和驱动数据库:redis的配置可以简单百度一下链接: https://pan.baidu.com/s/1TCOLuCd6be-XWa5BoMt4rA 提取码: migs 数据库redis软件链接: https://pan.baidu.com/s/1krvOnuOmWF9_nkCN-Gp0Ig 提取码: n8x4 驱动库连接redis所在驱动库路径,可以根据自己喜好创建,然后 引入路径要和自己放的一致 ,不要搞错了测试go代码package mainimport ( "f原创 2020-12-21 15:30:34 · 207 阅读 · 0 评论 -
go langTCP开启示例
发送给服务器要用 utf8 编码方式package mainimport ( "fmt" "net")var serverChan chan bool = make(chan bool, 1)func OpenTcpSever(ipAndPort string) { var err error var tcpListener net.Listener tcpListener, err = net.Listen("tcp", ipAndPort) if err != nil {.原创 2020-12-20 16:58:35 · 219 阅读 · 0 评论 -
go lang反射简单示例
/* 基础反射案例演示 知识储备reflect 包 演示过程 : 1.一个结构体实例 通过反射改变此实例字段值 2. 通过反射创建一个全新的结构体,并给字段赋值 3. 调用新建实例方法,注意在call() 参数是一个[]reflect.Value 的切片 返回函数值也是如此*/package mainimport ( "fmt" "reflect" "strings")type Customer struct { ID uint32 Name原创 2020-12-19 16:16:58 · 214 阅读 · 2 评论 -
go lang的多线程示例 写文件并且排序 和单元测试
待测试函数包:package sortFileimport( "io/ioutil" "math/rand" "time" "strings" "strconv" "fmt" "path/filepath" "os" "sort")const threadChanNu = 10const randMaxNu =1000// 写入数据func WriteFile(allFilePath,s string)bool { dir,_ := filepath.Split(all原创 2020-12-13 15:35:59 · 726 阅读 · 0 评论 -
golang信道示例
/* 计算1-200 的各个数的阶乘*/package mainimport( "fmt")type calcuteType struct{ index int dataVal float64}//协程数量const workChanNu = 5//放入数据信道var redWrChan =make(chan int, 100)//关闭信道标记信道var flagChan = make(chan bool , workChanNu)//临时计算结果var calcu原创 2020-12-11 17:16:57 · 180 阅读 · 0 评论 -
golang中的 信道的使用 示例
/* 用goroutine完成计算1-20000 有多少个素数*/package mainimport( "fmt" "time")var rwChan = make(chan int, 100) var resultChan = make(chan uint64,200)var flagChan chan boolconst threadNu = 8var resultSplice = make([]uint64, 0)//往信道中放入数据 完成后关闭信道f原创 2020-12-11 11:12:06 · 202 阅读 · 0 评论 -
golang 中的信道练习 填充和遍历 备忘
1.基础文件读取2.切片使用 ,添加3.随机数据使用和time时间方法使用4.管道的使用基本知识//channel 练习package mainimport( "fmt" "os" "bufio" "math/rand" "time" "strings")type Person struct{ Name string Age int Address string }var randStringPath string = "e:/randInfo.txt"原创 2020-12-13 15:38:36 · 246 阅读 · 0 评论 -
golang 中的接口和多态学习
嗯很好地一个例子 备忘:package mainimport( "fmt")type Usb interface{ Work()}type Phone struct{ Name string }func (this Phone) Work() { fmt.Println("手机插入。。。开始工作")}func (this *Phone) CallPhone() { fmt.Println("手机开始打电话。。。")}type Camera struct{原创 2020-12-10 17:05:35 · 172 阅读 · 0 评论 -
golang 中的序列化和反序列化
package storeimport( "io/ioutil" "encoding/json" "os")type Monster struct{ Name string `json:"name"` Age uint `json:"age"` Skill string `json:"skill"`}//序列化本实体对象 方法func (this *Monster) Store(savePath string ) bool { marshalSplice,err :=原创 2020-12-10 08:37:23 · 308 阅读 · 0 评论 -
go lang 语言备忘录 os文件操作
package mainimport ( "bufio" "fmt" "io" "os")type StatisicsInfo struct { Number int Space int English int Chinese int Others int}func StatisicsFunc(path string) (bool, StatisicsInfo) { var statisics StatisicsInfo //1. 先判断传入文件路径是否存在原创 2020-12-09 16:31:01 · 283 阅读 · 0 评论