当前位置: 首页 > 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.pierceye.com/news/703391/

相关文章:

  • 企业网站建设的方案书用织梦做模板网站
  • 馆陶做网站容桂低价网站建设
  • 帮一个企业做网站流程免费做app的软件有哪些
  • 河间哪里有做网站的wordpress禁用修正版
  • 网站建设对网络营销的影响做网站的怎么挣钱
  • 个人备案的网站涉及到资金抖音代运营服务达不到退费标准
  • 做网站投放广告湘潭学校网站建设 磐石网络第一
  • 营销手机网站目前专业做水果的网站有哪些
  • 莆田仿站定制模板建站网站设计应该考虑的重要因素
  • 简述网站制作过程企业网络推广网站建设
  • 外贸营销网站建设介绍wordpress分库技术
  • 做竞品分析的网站安卓小程序开发入门
  • 做网站的外包公司可以进吗做旅游网站赚钱吗
  • 网站网页设计基本理论教育学校网站源码 php
  • 吉林省建设厅网站专家新华社官网
  • 代做吧机械网站天津建站管理系统价格
  • 开发网站公司都需要什么岗位人员有了网站怎么写文章
  • 白水网站建设郑州网站推广优化公司
  • 做网站的参考文献专业建设报告
  • asp网站搭建工具中英文网站前端怎么做
  • 微信公众号 做不了微网站wordpress怎么转移
  • 主营网站开发游戏推广员每天做什么
  • c 做网站用什么框架长沙网络建设的网站
  • 专业的网站建设网络网站连接跳转怎么做
  • 南山网站设计方案安徽六安特产
  • 设计型网站案例深圳广告投放公司
  • 能源网站模板头条发布视频成功显示404
  • 郑州网站制作企业建设网站多长时间
  • 建站网站知乎wordpress面包屑
  • 用CMS做网站的好处网站流量消耗计算