猫史档案馆


非常简单的多层储存方案

用户:PXstatePXstate查看:6138 回复:7 评论:17 创建时间:2023-07-02T20:50:22


在各大语言中都是支持多层储存的,但是kitten无法多层存储。

var x = [value1,value2,[value3,value4,[value5,[value6]]]]

像这种kitten本身的列表都是无法实现的

那如何解决多层储存呢?(kobj已经实现了,具体解决方案我不知道(因为我看不懂emotion_泪))

虽然kitten无法多层存储,但是单层存储是可以的

var x = [[value1],[value2],[value3],value4]

这样其实挺好,就不用单独去做一个系统为了把一个无深层列表储存进列表的一项了

看一下基础的无深层列表存储的办法

var x_name = [name1,name2]
var x_value = [value1,[value2,value3]]

实例

// 这是列表内的
name = [value1,[value2,value3]]

直接在x_name内搜索名称找到项,然后找到对应值输出

多层列表里面包含着很多列表,从最深的层开始,最深一层肯定是一个无深度的列表,如果把这个列表用一个指定的东西来代替,那他的上一级也变成了一个无深度的列表。

看这个示例,[value1,[value2,value3]]是一个多层列表,最深的一层是[value2,value3],把这个列表取名为*array,为什么要在前面加个*号了,为了让识别的代码知道,这是一个代替列表的值,并不是这一项是一个字符串,也可以换成别的识别符。然后[value1,*array]这个列表,这就变成了一个无深度的列表。那怎么让代码知道这个array表示的值呢?我们可以直接添加一个新的列表在x_name和x_value中,名称就是array,值就是[value2,value3]。等到机器识别到*array,识别到*,知道这是一个列表的名称,然后在x_name找,找到x_value,原本的列表。按照这样的方法,任何的多层列表都可以这样进行存储。

接下来我们练习一下

如果我们要存储

[v1,[[v2,v3],[v4,v5],v6]]
var x_name = []
var x_value = []

从最深的列表开始,注意,这里有两个最深的列表,[v2,v3],[v4,v5],我们取名v23和v45

[v1,[*v23,*v45,v6]]

var x_name = [v23,v45]
var x_value = [[v2,v3],[v4,v5]]

接下来继续,最深是[*v23,*45,v6],取名为v23456

[v1,*v23456]

var x_name = [v23,v45,v23456]
var x_value = [[v2,v3],[v4,v5],[*v23,*v45,v6]]

然后会发现已经成为了一个没有深度的列表,可以直接存进去了

总列表叫array

var x_name = [v23,v45,v23456,array]
var x_value = [[v2,v3],[v4,v5],[*v23,*v45,v6],[v1,*v23456]]

v23/v45/v2345其实可以存到别的列表,以免和用户储存的列表冲突

这样非常好解析,也好写入

 

作业(我觉得没人会去做emotion_doge)

var x_name = [pxstate,作品,荣誉墙,其他]
var x_value = [[年龄,*作品,*荣誉墙],[winPX,24点解题器],[浏览量,*其他],[114514,225625,336736]]

请问(注意:代码项数性质,0为第一项)

1、console.log(pxstate[2][1][0])输出多少?

2、把pxstate列表写成原本形式


回复

上一页第 1 页 / 共 1 页下一页
PXstatePXstate

name翻译名称,value翻译值

点赞0


评论


橘生淮北则为枳橘生淮北则为枳

和𝖢ℴ𝗌𝔦𝒹ₑ𝑟.kcode一样,都在改变kitten本身(快去卷喵官方)

点赞1


评论

你和中二的LittleBoy一样,都是数学大佬()

发的帖都看不懂....

他失踪两个月力,账号头上都长草了。(

我什么都不是(大悲

最近貌似没看到𝖢ℴ𝗌𝔦𝒹ₑ𝑟.kcode(疑)

确实少了些,估计考试吧

我考试前一天还在看猫站()


晴天宝r晴天宝r

有一个我可以勉强看懂的东西了)

点赞1


评论


无敌版滑稽战神无敌版滑稽战神

我是列表套列表()

点赞0


评论

其实这样对于一些作品已经够用了


yee089yee089

多层的话,可以写树捏

树树我啊(划)

点赞1


评论

目录树?

差不多吧。不过存喵有丶困难,单存一个父亲又太难遍历

喵=儿·子

鼠鼠我啊,快被各种树搞昏了呢

看上面的解决方案,同样是两层的结构,正好可以塞进kitten的列表

其实,可以字符串解析(

可以,但是要想想字符串解析的难度()

区区大模拟(doge)


PXstatePXstate

目录树结构

# 每项列表0项为所在目录标志数字,1项为类型(1文件还是2文件夹),2项为名称,3项如果是文件为value,如果是文件夹就是当前文件夹内的标志数字 顶层为1
[[1,1,file1,text1],
 [1,2,文件夹1,2],
 [2,1,file2,text2]]

点赞0


评论

文件夹1内有file2文件


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

多维列表是不是()

点赞0


评论