字符串
反转字符串
12345678910func reverseString(s []byte) { len := len(s) left , right := 0 , len-1 for left < right { s[left],s[right] = s[right],s[left] left ++ right -- }}// 双指针
反转字符串2
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
1234567891011121314151617func reverseStr(s string, k int) string { t := []byte(s) for i := 0; i < len(s); i += 2 * k ...
JAVA课程学习
gxj 的 JAVA课记录.java(源文件) -> .class -> 解释执行
输入
1234567891011public class hello { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 分隔 String[] line = sc.nextLine().split(" "); for(int i=0 ; i<line.length;i++) { // string -> int System.out.println(Float.valueOf(line[i])); } }}
跳出循环
12345abc: for(int i = 0;i<n;i++){ if (i<0){ break abc; ...
链表(JAVA)
链表定义
12345678910111213// 节点表示public class ListNode(){ int val; ListNode next; public ListNode(){} public ListNode(int val){ this.val = val; } public ListNode(int val,ListNode next){ this.val =val this.next = next; }}
12345// 这个表示 一整个链表public class MyListNode(){ int size; ListNode head;}
设计链表
你可以选择使用单链表或者双链表,设计并实现自己的链表。
单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。
如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所 ...
JAVA基础
概述
这个就是记录一些重要一点的语法–具体语法取自菜鸟教程
因此,就是大致了解,后面准备直接开Spring
下面是杂七杂八的一些东西:
入口123public static void main(String[] args){ System.out.println("hello world")}
大小写
大小写敏感,采用驼峰或者蛇形(推荐驼峰,个人习惯)
类 大写
方法 小写
源文件名 必须与 方法名 相同
入口可以有很多
常量大写
标识符
字母 + $ + _ 三种类型开头,其他不行
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary
修饰符访问控制:
public
default
protected
private
变量修饰符
final
abstract
static
synchronized
变量
局部变量
类变量(静态变量)
成员变量(非静态变量)
枚举 就是一个特殊的 类
关键字忒多了
注释12345678// 单行注释/*多行注释 */ / ...
快乐树-哈希
快乐树
编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。
如果 n 是快乐数就返回 True ;不是,则返回 False 。
示例:
输入:19输出:true解释:1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 + 0^2 + 0^2 = 1
思路题目中说了会 无限循环,那么也就是说求和的过程中,sum会重复出现
123456789101112131415161718192021func isHappy (n int)bool{ left ,right := n , n for{ left = GetSum(left) right = GetSum(left) right =GetSum(right) if left ==r ...
奖学金系统v4-4
今天不分享技术,也没学到啥技术…….
今天做了一晚上的阅读理解
起因是老板让我写 project/ 级别的公共库操作
其实这个project/ 级别的操作跟之前 清晨写的 lib 公共库一毛一样
我还以为我需要直接全部把代码搬过来
然后新建一堆数据库进行操作,没想到老板是让我在原来的数据库上进行操作,并且把清晨的代码改进一下–> 从只有system版本 到 有两个版本
然后我就蒙蔽了,他让我写路由,写尼玛,没有丝毫头绪,如果是在同一张表上面修改,就是在scope上面做文章
123456789101112131415type LibScore struct { model.Base Name string `gorm:"comment:指标名称"` // 2022-2023-1全校绩点 Tags datatypes.JSONSlice[string] `gorm:"comment:指标标签"` Scope string ...
传统分页
Limit&Offset 实现util.go 功能实现12345678910111213141516171819202122232425262728package utilimport "gorm.io/gorm"type Paginate struct { Current int `query:"current" json:"current"` //现在位置 PageSize int `query:"pageSize" json:"pageSize"` //页面大小 }func (p *Paginate) Paginate() func(db *gorm.DB) *gorm.DB { page := p.Current limit := p.PageSize return func(db *gorm.DB) *gorm.DB { if page == 0 { page = 1 ...
uuid和姓名
uuid->学号 在数据传输的过程中,一般不能使用真实的学号,或者姓名id,在数据库的存储过程中,一般也不是简单的ID自增形式,所以使用uuid和姓名或者学号的对应关系。
12345678910111213141516171819202122type LibScore struct { model.Base Name string `gorm:"comment:指标名称"` // 2022-2023-1全校绩点 Tags datatypes.JSONSlice[string] `gorm:"comment:指标标签"` Scope string `gorm:"comment:'指标等级: 系统级 system, 项目级 project/xxx'"` Content []LibScoreContent `gorm:"foreignkey:LibScoreID ...
Gorm初始
docker 生成**
1docker run --name today -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=pick -e MYSQL_USER=user -e MYSQL_PASSWORD=password -p 3307:3306 -d mysql:latest
然后返回一堆字符串就是成功
Gorm初始化
结构体中的字段必须都为大写,这样子在迁移的时候才会形成相应的字段
1234567891011121314151617181920func init() { // gorm的连接 // 以后具体数据用 config获取 dsn := "user:password@tcp(localhost:3307)/pick?charset=utf8mb4&parseTime=True&loc=Local" var err error bb, err := gorm.Open(mysql.Open(dsn), &gorm.Config{ ...
casbin实现
学习了之前的Casbin-model,就可以开始书写casbin的具体实现代码了,非常惭愧,昨天没有搓出博客,太懒了
思路 在我认知范围内,casbin的具体实现思路是
casbin 和 gorm.adapter的依赖下载后
准备 model 和 adapter
通过上面两个东西创建一个enforce
提前加入 role+data1+action
其他需要做的就是 添加项目时 将 user与role绑定
requre user 访问是否有相应的role policy
添加一些其他的有关policy的函数,查看,删除啥的
实践 具体代码的呈现肯定不是直接按思路来的,不过我这里就按思路呈现一下代码。
准备 model 和 adapter
123456789101112131415161718192021222324// 准备modelconst ( casModel = `[request_definition]r = sub, obj, act[policy_definition]p = sub, obj, act[role_definition]g = _, _[p ...