Golang
文章平均质量分 50
lena7
这个作者很懒,什么都没留下…
展开
-
Gin:页面上传图片到服务器
页面代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>上传图片</title></head><body><form action="http://localhost:8080/upload" method="post" enctype="multipart/form-data">原创 2022-03-13 12:42:21 · 918 阅读 · 0 评论 -
Golang操作MongoDB:mongo-driver
1、获取依赖go get "go.mongodb.org/mongo-driver"2、连接数据库前提:确保mongo进程已启动ps -ef|grep mongoimport ( "context" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "log")var db *mongo.Database // 数据库var stuColl *mongo.Collecti原创 2022-02-18 14:42:13 · 3434 阅读 · 3 评论 -
Go结构体标签
omitempty作用:表示在转成json的时候,如果该字段没有提供,那么就不显示该值。原创 2022-02-18 12:52:58 · 633 阅读 · 0 评论 -
golang:使用redigo连接并操作Redis
1、下载安装包执行命令:go get -u github.com/go-redis/redis2、开启服务端监控信息在redis-cli.exe中输入命令:monitor,开启监控127.0.0.1:6379> monitorOK开启监控后,我们的所有操作都会在redis-cli.exe中打印出来。3、go连接Redisimport ( "fmt" "github.com/go-redis/redis")func ConnRedis() { rd :原创 2021-10-18 16:08:05 · 1308 阅读 · 0 评论 -
golang:使用go-redis连接并操作Redis
连接1、下载安装包目前有两种redis方式支持go操作,一种是go-redis,该方式支持连接哨兵及集群模式的Redis。其包获取命令如下:go get -u github.com/go-redis/redis还有另外一种比较常用的redigo方式,其包获取命令如下: go get -u github.com/garyburd/redigo/redis本文章采用第一种go-redis,若想看第二种redigo方式操作redis可以移步另一篇文章:https://blog.csdn.net/l原创 2021-10-18 16:07:09 · 7200 阅读 · 4 评论 -
golang:自定义栈 并实现表达式的计算
功能介绍表达式可以包含+,-,*,/,(,)五种运算符。若表达式输入错误,则提示错误信息;若表达式无误,则输出正确结果。例如输入43-40*2-(80-3),输出结果-114注意:允许输入多组()嵌套,只要合法即可,如(43-40)*(2-(8+3)),属于合法表达式。栈的定义代码/** * @Author: lena * @Date: 2021/9/23 16:32 * @Description: 用数组实现栈 * @Version: 1.0.0 */package data_原创 2021-10-16 20:48:33 · 661 阅读 · 0 评论 -
golang使用数组实现 数据结构队列
代码如下:/** * @Author: lena * @Date: 2021/9/23 16:32 * @Description: 用数组实现队列 * @Version: 1.0.0 */package data_structureimport ( "errors")type queue struct { start int end int size int // 数组大小 arr []int // 用数组模拟队列}// 创建原创 2021-09-23 21:52:52 · 198 阅读 · 0 评论 -
golang打印九九乘法表
代码如下:func Print() { i, j := 1, 1 for j <= 9 { for i <= j { fmt.Printf("%v*%v=%v ", i, j, i*j) i++ } fmt.Printf("\n") j++ i = 1 }}效果如下:1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5原创 2021-09-23 21:50:23 · 203 阅读 · 0 评论 -
golang实现一个简单家庭记账软件:登记收入、支出、收支明细
代码如下:/** * @Author: lena * @Description:家庭记账软件 * @Version: 1.0.0 * @Date: 2021/9/15 21:22 */package exerciseimport ( "fmt")type record struct { get bool // 收支 bill int // 收支金额 balance int // 余额 describe string // 说明 tim原创 2021-09-23 21:49:22 · 457 阅读 · 1 评论 -
golang:Mysql数据库操作(连接、CRUD、SQL预处理、事务)
1、创建数据库表create table student ( id int NOT NULL AUTO_INCREMENT, name varchar(20), age int)2、添加数据insert into student values(1001,"lena",21),(1002,"titiy",22);3、go get mysql如果是第一次连接mysql数据库,需要先拉取mysql所需要的包go get -u github.com/go-sql-driver/mysql该原创 2021-09-12 21:46:04 · 650 阅读 · 0 评论 -
go get报错:A connection attemp t failed because the connected party did not properly respond after a p
当我尝试执行go get -u github.com/go-sql-driver/mysql命令获取mysql的时候,报错了。具体错误如下:go get: module github.com/go-sql-driver/mysql: Get "https://proxy.golang.org/github.com/go-sql-driver/mysql/@v/list": dial tcp 172.217.24.17:443: connectex: A connection attempt faile原创 2021-09-12 19:46:30 · 74200 阅读 · 3 评论 -
golang:实现一个简单的日志库 日志信息按日期切割存放在文件中
1、定义日志级别const ( DEBUG=iota TRACE INFO WARNING ERROR FATAL)2、定义log接口// 定义log接口type Log interface { Debug(msg string) TRACE(msg string) INFO(msg string) WARNING(msg string) ERROR(msg string) FATAL(msg string)}输出方式一:将日志记录在控制台实现log接口中的方法原创 2021-09-07 17:06:44 · 2778 阅读 · 0 评论 -
golang:文件操作
文件相对路径如果想要使用文件相对路径,可以先利用os.Getwd()方法获取当前工作路径。// 获取当前文件路径func Path1() { str, _ := os.Getwd() fmt.Println(str)}获取到当前项目的工作路径后,就可以通过工作路径书写文件相对路径了。例如:我的工作路径是…helloworld,那么下图中的road.go文件的相对路径就是./exercise/file/read.go打开关闭文件方法:func OpenFile(name string,原创 2021-09-05 22:14:39 · 444 阅读 · 0 评论 -
Golang实现简单学生管理系统:查询、修改、添加、删除学生信息
1、定义学生结构体 student.gotype student struct { id int name string age int}2、定义管理者结构体,其中管理者中存储着所有学生信息type manage struct { // 所有学生信息 students map[int]student}3、管理者应该具有学生信息管理能力:增删改查学生。完整的manage.go如下:type manage struct { // 所有学生信息 students map[int]s原创 2021-09-02 19:46:43 · 1155 阅读 · 0 评论 -
分金币任务
/** 分金币题目要求 你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,Adriano,Aaron,Elizabeth 分配规则如下: a. 名字中每包含1个'e'或'E'分1枚金币 b. 名字中每包含1个'i'或'I'分2枚金币 c. 名字中每包含1个'o'或'O'分3枚金币 d: 名字中每包含1个'u'或'U'分4枚金币 写一个程序,计算每个用户分到多少金币,以及最后剩余多少金币? 程序结构如下,请实原创 2021-09-02 19:39:29 · 212 阅读 · 0 评论 -
Go Module模式:基本命令、导入第三方库
概述当我们在使用import导入包的时候,无法指定版本号,但我们知道不同版本的包存在大大小小的差异,版本不可控是十分危险的。因此我们需要使用module模式来进行版本控制。使用:需要将代码仓库放到环境变量的GOPATH/src目录外,然后在代码目录下创建一个go.mod文件,然后在代码目录下执行go命令。go mod文件内容module 当前模块名称go 版本号require 所需第三方库go mod命令输入go mod help可以查看到所有go mod命令:以下命令前缀是go m原创 2021-08-30 20:20:50 · 2851 阅读 · 0 评论 -
golang:协程goroutine、管道通信channel
协程原先使用的进程线程,在进行切换的时候都要切换到内核态:在进程控制块PCB中保存中断现场,然后再将CPU恢复到下一个进程的现场。使用协程,可以将中断现场信息保存在用户空间,对内核来说是透明的。在切换协程的时候无需切换到内核态,大大地减少了开销。如下图,协程和线程是M:N的关系,效率高与否具体取决于协程调度器的调度。GMPG:表示goroutine协程。M:表示thread线程。P:表示processor处理器。当创建新的协程的时候,优先将其加入某一个processor处理器的本地队列,若原创 2021-08-27 23:16:54 · 616 阅读 · 0 评论 -
golang:基础语法学习
包名每个go文件第一句是包名 package 包名若想要当前main作为项目的入口,则包名必须为main,即package main导包使用import "包名"// 导一个包import "fmt"// 导多个包 方式一import( "fmt" "time")// 导多个包 方式二import "fmt"import "time"注意:导入的包必须要在程序中使用,如果没有用到则会报错。声明变量单变量声明以下是四种方式定义变量,使用var定义。import "f原创 2021-08-24 14:08:38 · 371 阅读 · 0 评论 -
初识 Golang
概述优点缺点Helloworld原创 2021-08-23 10:25:37 · 4272 阅读 · 0 评论