当前位置: 首页 > news >正文

服务器和域名都有了 怎么做网站wordpress 百万数据

服务器和域名都有了 怎么做网站,wordpress 百万数据,ppt素材免费网站,vr全景网站开发概述 之前在《【Godot4.2】Tree控件自定义树形数据ETD及其解析》一文中#xff0c;实现了对带缩进的层级结构文本的解析#xff0c;并将其用于Tree控件的列表项构造。 不过当时并没有实现专门的类#xff0c;今天花了一点时间实现了一下。现在可以更方便的构造和解析ETD数…概述 之前在《【Godot4.2】Tree控件自定义树形数据ETD及其解析》一文中实现了对带缩进的层级结构文本的解析并将其用于Tree控件的列表项构造。 不过当时并没有实现专门的类今天花了一点时间实现了一下。现在可以更方便的构造和解析ETD数据并转化为其他格式。 并且EasyTreeData类可以被理解为一个树型数据结构可以基于它构造数据结构中的树。 本篇就介绍一下这个类的使用方法。 代码 # # 名称EasyTreeData # 类型类 # 简介专用于构造树形结构数据的类 # 作者巽星石 # Godot版本v4.2.2.stable.official [15073afe3] # 创建时间2024年4月29日23:20:02 # 最后修改时间2024年4月30日00:57:15 # class_name EasyTreeDatavar _root:EasyTreeItem# 内部类 # 单项数据 class EasyTreeItem:var data:Stringvar deep:intvar parent:EasyTreeItemvar children:Array[EasyTreeItem]func _init(_data:String,_deep:int) - void:data _datadeep _deepchildren []# 输出ETD多行文本格式func _to_string() - String:var sttr: %s%s\n % [\t.repeat(deep),data]for child in children:sttr child.to_string()return sttr# 输出MarkDown带缩进无序列表字符串func to_MD_ul() - String:var sttr: %s- %s\n % [\t.repeat(deep),data]for child in children:sttr child.to_MD_ul()return sttr# 输出可识别的LaTex总结字符串func to_LaTex() - String:var list_str \n/begin{cases}\n%s/end{cases}\nvar sttr: %s%sif children.size()!0:var subs for child in children:subs child.to_LaTex() //\nsttr sttr % [data,list_str % subs]else:sttr sttr % [data,]return sttr.replace(/,\\)# 虚函数 # 转化为字符串 func _to_string() - String:return if !_root else _root.to_string()# 返回ETD多行文本 func get_data() - String:return _to_string()# 输出MarkDown带缩进无序列表字符串 func to_MD_ul() - String:return if !_root else _root.to_MD_ul()func to_LaTex() - String:return if !_root else _root.to_LaTex() # 方法 # 创建并返回一个EasyTreeItem实例 func create_item(text:String,p_node:EasyTreeItem null) - EasyTreeItem:var itm EasyTreeItem.new(text,0)if _root:if p_node:itm.deep p_node.deep 1itm.parent p_nodep_node.children.append(itm)else:itm.deep _root.deep 1itm.parent _root_root.children.append(itm)else:_root itmreturn itm# 由多行文本创建 static func new_with_etd_str(etd_str:String) -EasyTreeData:var edt EasyTreeData.new()var items etd_str.split(\n,false) # 将ETD字符串按行切分为字符串数组var pre_itm:EasyTreeItem # 记录前一项var p_itm:EasyTreeItem null # 记录父节点# 遍历每行数据for i in range(items.size()):# 第1行直接添加为Tree控件的根节点跳过下面if部分# 从第2行开始比较当前行与前一行的缩进深度也就是\t的数目if i 0: var d_deep deep(items[i-1]) - deep(items[i]) # 与前一行数据的缩进差值match d_deep:-1: # 缩进比前一项深p_itm pre_itm # 将前一项作为父节点0: # 缩进深度与前一项一样p_itm pre_itm.parent # 父节点与前一项父节点一样_: if d_deep0: # 缩进比前一项浅# 通过缩进差值计算获得合适的父节点p_itm pre_itm for j in range(d_deep1):p_itm p_itm.parent# 实际创建和添加TreeItem到Tree控件var itm:EasyTreeItem edt.create_item(items[i].replace(\t,),p_itm)pre_itm itm # 将当前项记录为前一项return edt# 返回字符串的Tab缩进值 static func deep(sttr:String):return sttr.rstrip( ).count(\t)使用方法 基础使用 EasyTreeData在使用和API名称上模仿了Godot的Tree控件和TreeItem类。所以熟悉Tree控件和TreeItem的Godoter可以直接零难度上手。 var edt EasyTreeData.new() # 创建实例 # 创建根节点 var root edt.create_item(根节点) var itm edt.create_item(节点1,root) # 创建根节点的子节点 print(edt) # 打印输出相应的EDT字符串输出 根节点节点1用ETD多行文本数据创建 你可以用多行文本形式构造一个ETD数据字符串也就是一个带层级关系和缩进关系的多行文本 var etd 条目1条目1.1条目1.2条目1.2.1条目1.2.2条目1.3通过调用new_with_etd_str()静态方法并传入上面的ETD数据字符串可以构造一个新的EasyTreeData实例。 var edt EasyTreeData.new_with_etd_str(etd) print(edt)输出 条目1条目1.1条目1.2条目1.2.1条目1.2.2条目1.3可以看到与传入的ETD数据字符串一致但是你可以在此基础上继续添加新的数据项。 获取MarkDown的无序列表字符串 print(edt.to_MD_ul()) 输出 - 条目1- 条目1.1- 条目1.2- 条目1.2.1- 条目1.2.2- 条目1.3这段代码可以直接粘贴到MarkDown编辑器中变为带层级的无序列表样式效果如下 条目1 条目1.1条目1.2 条目1.2.1条目1.2.2 条目1.3 将ETD解析为LaTex总结笔记 print(edt.to_LaTex())输出 条目1 \begin{cases} 条目1.1\\ 条目1.2 \begin{cases} 条目1.2.1\\ 条目1.2.2\\ \end{cases} \\ 条目1.3\\ \end{cases}粘贴到MarkDown编辑器的LaTex公式中显示为 条 目 1 { 条 目 1.1 条 目 1.2 { 条 目 1.2.1 条 目 1.2.2 条 目 1.3 条目1 \begin{cases} 条目1.1\\ 条目1.2 \begin{cases} 条目1.2.1\\ 条目1.2.2\\ \end{cases} \\ 条目1.3\\ \end{cases} 条目1⎩⎪⎪⎪⎨⎪⎪⎪⎧​条目1.1条目1.2{条目1.2.1条目1.2.2​条目1.3​ 基于此我们可以很方便的通过简单的层级缩进文本或者Markdown中带层级缩进的无序列表实现比较复杂的Latex公式总结笔记的转化。 比如我们构造如下的ETD字符串: 数据结构线性结构栈队列双端列表列表非线性结构图树生成的总结笔记 数 据 结 构 { 线 性 结 构 { 栈 队 列 双 端 列 表 列 表 非 线 性 结 构 { 图 树 数据结构 \begin{cases} 线性结构 \begin{cases} 栈\\ 队列\\ 双端列表\\ 列表\\ \end{cases} \\ 非线性结构 \begin{cases} 图\\ 树\\ \end{cases} \\ \end{cases} 数据结构⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧​线性结构⎩⎪⎪⎪⎨⎪⎪⎪⎧​栈队列双端列表列表​非线性结构{图树​​ 展望 紧缩字串暂未实现 可以将ETD多行文本形式转化为如下的括号嵌套结构的单行字符串。这样更容易压缩存储。 此外也可以编写相应函数来解析为树形结构数据。 条目1[条目1.1,条目1.2[条目1.2.1,条目1.2.2]条目1.3]获取字典与JSON形式 在上面基础上我们可以获取对应的字典以及JSON字符串。 用于树控件 通过提供静态方法可以用于任意Tree控件的数据项构造。 用于构造菜单 菜单是多个树结构
http://www.zqtcl.cn/news/703391/

相关文章:

  • 卖文章的网站源码咸阳做网站的公司电话
  • 网站建设案例百度云怎么在手机上传百度云wordpress
  • 传媒公司取名seo网站推广怎么收费
  • 网站建设具体详细过程WordPress usdt收款
  • 网站标题应怎设置生产备案号怎么查询网站
  • 怎样建立网站目录结构网站 项目方案
  • jsp做网站还响应式科技公司网站模板
  • 杭州网站建设设计公司做阀门网站
  • 用模板建站青岛企业网站制作公司
  • 网站建设经费预算表辽宁工程建设招标网
  • sql数据库查询网站模板谷歌浏览器网页版入口
  • 成都h5建站市场监督管理局举报电话
  • 百度推广弄个网站头像要钱吗?最新新闻热点素材
  • 江苏做网站找谁wordpress主题设置插件
  • 郑州微信网站开发建筑网招工平台
  • 给网站挂黑链普工招聘最新招聘信息
  • 重庆推广网站排名价格上海房产信息网官网
  • 深圳网站公司制作网络公司排名
  • 郑州高端做网站网页制作与网站建设实战大全光盘
  • 科技网站制作公司免费模板建站网站
  • 网页排版精美的中文网站单页设计软件
  • 图书馆网站建设情况会员卡管理系统价格
  • 网站建设的通知沈阳品牌设计公司
  • html5网站框架宝安网站建设深圳信科
  • 做网站单页分销电商平台开发
  • 吉林网站备案南京网站开发选南京乐识好
  • 某网站建设方案纯文本网站连接
  • 怎样做网页游戏网站智通人才网东莞最新招聘信息官网
  • 中英文网站建设wordpress 旅行
  • ic商城网站建设南大资源分享wordpress