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

北京企业建站程序ftp服务器设置网站主页

北京企业建站程序,ftp服务器设置网站主页,网站被百度惩罚怎么办,上海网络推广概述 在写myList类的时候#xff0c;就想到可以写一个类似的Todo清单类。 基础思路 本质还是在内部维护一个数组#xff0c;在其基础上进行增删改查操作的封装为了方便存储数据#xff0c;编写一个自定义内置类TodoItem#xff0c;内部数组就变成了Array[TodoItem]类型的…概述 在写myList类的时候就想到可以写一个类似的Todo清单类。 基础思路 本质还是在内部维护一个数组在其基础上进行增删改查操作的封装为了方便存储数据编写一个自定义内置类TodoItem内部数组就变成了Array[TodoItem]类型的类型化数组。在这个数组基础上编写各种方法。 基于本文所写的这个类实际上已经可以写简单的清单应用了。当然为了能用于打印输出所以我也设定了以纯字符形式输出的方法。 代码 # # 名称myTodoList # 类型类 # 简介专用于构造待办清单列表的类 # 作者巽星石 # Godot版本v4.2.2.stable.official [15073afe3] # 创建时间2024年4月27日13:30:09 # 最后修改时间2024年4月27日22:17:18 # class_name myTodoListvar _arr:Array[TodoItem] # 数据 - 内部维护的类型化数组# 常量与取值函数 # 列表项状态 enum {UNCHECKED,CHECKED,CANCLE}var state_chars : ☐☑☒ # 状态字符# 获取对应常量的状态字符 func get_state_char(state:UNCHECKED):return state_chars[state] # 内部类 # 清单列表项 class TodoItem:var status:int UNCHECKED # 状态var content:String # 内容func _init(ctn:String,state:int UNCHECKED) - void:content ctnstatus state # 虚函数 # 实例化 func _init(list:PackedStringArray []) - void:for itm in list:var item TodoItem.new(itm)_arr.append(item) # 方法 # -------------------- 增删改查 -------------------- # -------------------- 增 # 添加清单项 func append(itm:String,state:int UNCHECKED) - void:var item TodoItem.new(itm,state)_arr.append(item)# 添加多个清单项 func append_array(items:PackedStringArray,state:int UNCHECKED) - void:for i in range(items.size()):append(items[i],state)# 在指定位置添加清单项 func insert(pos:int,itm:String,state:int UNCHECKED) - void:var item TodoItem.new(itm,state)_arr.insert(pos,item) # -------------------- 删 # 移除列表项 func remove(idx:int) - void:_arr.remove_at(idx)# 清空列表项 func clear() - void:_arr.clear() # -------------------- 改 # --------- 修改清单项的勾选状态 --------- # 勾选列表项 func check(idx:int) - void:_arr[idx].status CHECKED# 勾选列表项 func uncheck(idx:int) - void:_arr[idx].status UNCHECKED# 勾选列表项 func cancle(idx:int) - void:_arr[idx].status CANCLE # --------- 修改清单项的值和位置 --------- # 修改列表项的值 func set_item(idx:int,new_val:String) - void:_arr[idx].content new_val# 修改列表项的位置 func move_to(idx:int,new_pos:int) - void:var item _arr[idx]_arr.remove_at(idx)_arr.insert(new_pos if new_pos !0 else 0,item) # -------------------- 查 # 获取列表项 func get_item(idx:int) -TodoItem:return _arr[idx]# 返回列表项的总数 func get_count() -int:return _arr.size() # -------------------- 遍历 # 遍历函数 func for_item(callback:Callable) -void:for i in range(_arr.size()):callback.callv([_arr[i],i,_arr.size()]) # -------------------- 获取清单 -------------------- # 返回清单列表 func get_data() - Array[TodoItem]:return _arr.duplicate() # 返回副本# 返回清单列表 func _to_string() - String:var strr for i in range(_arr.size()):strr %s %s\n % [get_state_char(_arr[i].status),_arr[i].content]return strr 基础原理 class_name myTodoListvar _arr:Array[TodoItem] # 数据 - 内部维护的类型化数组# 常量与取值函数 # 列表项状态 enum {UNCHECKED,CHECKED,CANCLE}var state_chars : ☐☑☒ # 状态字符# 获取对应常量的状态字符 func get_state_char(state:UNCHECKED):return state_chars[state] # 内部类 # 清单列表项 class TodoItem:var status:int UNCHECKED # 状态var content:String # 内容func _init(ctn:String,state:int UNCHECKED) - void:content ctnstatus state观察最顶部的代码可以发现 整个myTodoList内部维护一个名为_arr的数组它是Array[TodoItem]的类型数组只存储也只能存储TodoItem类型的实例TodoItem是内部类有2个基础属性status和content分别存储清单项的状态是否选中或取消以及文本内容TodoItem构造函数中默认的状态设置为UNCHECKED也就是未选中TodoItem的状态可以是UNCHECKED,CHECKED,CANCLE其中之一分别对应未选中、选中和取消state_chars中存储了TodoItem3种状态对应的字符组成的字符串☐☑☒get_state_char()用于获取UNCHECKED,CHECKED,CANCLE对应的state_chars中的字符用于在get_todo_list_string()中返回纯字符串的Todo清单。 基础使用 myTodoList的方法和使用基本上与myList类一致也与GDScript的数组基本保持一致所以上手没什么难度。除了设定状态的3个方法 uncheck()将指定位置的项设为不勾选check()将指定位置的项设为勾选cancle()将指定位置的项设为取消 var list myTodoList.new([待办事项1,待办事项2,待办事项3]) # 创建实例 list.check(0) # 选中第1项 list.cancle(1) # 取消第2项 list.append(待办事项4) list.append(待办事项5,list.CHECKED) list.append_array([待办事项6,待办事项7,待办事项8],list.CHECKED) print(list.get_todo_list_string())输出 ☑ 待办事项1 ☒ 待办事项2 ☐ 待办事项3 ☐ 待办事项4 ☑ 待办事项5 ☑ 待办事项6 ☑ 待办事项7 ☑ 待办事项8改进 使用_to_string() _to_string()虚函数是用于在类内部自定义to_string()返回值的。在使用print()或其他打印函数时会自动调用to_string()打印其返回值。 我们将原来的get_todo_list_string()方法改为_to_string()。 # 返回清单列表 func _to_string() - String:var strr for i in range(_arr.size()):strr %s %s\n % [get_state_char(_arr[i].status),_arr[i].content]return strr则在打印时我们可以直接print()我们创建的实例: var list myTodoList.new([待办事项1,待办事项2,待办事项3]) # 创建实例 print(list)而如果我们想要字符串本身可以使用list.to_string()。
http://www.zqtcl.cn/news/738587/

相关文章:

  • 做棋牌游戏网站犯法吗如何进行搜索引擎的优化
  • 常见的网站首页布局有哪几种陈光锋网站运营推广新动向
  • 手机网站活动策划方案开一个设计公司
  • 宝塔建设网站教程visual studio 2010 网站开发教程
  • 做网站购买服务器做谷歌网站使用什么统计代码吗
  • 网站系统与网站源码的关系emlog轻松转wordpress
  • 网站的简介怎么在后台炒做吉林省住房城乡建设厅网站首页
  • 泉州易尔通网站建设国际酒店网站建设不好
  • 网页下载网站福田企业网站推广公司
  • 北京网站建设开发公司哪家好网站添加在线留言
  • 新建的网站怎么做seo优化平面广告创意设计
  • yy陪玩网站怎么做软件项目管理计划
  • 西安建网站价格低百度推广区域代理
  • 中英网站模板 照明公司注册在自贸区的利弊
  • 全球十大网站排名wordpress标题连接符
  • 网站开发可能遇到的问题四川建筑人才招聘网
  • 镇江网站托管怎么做淘宝网站赚钱吗
  • 交互式网站是什么知名vi设计企业
  • 上海个人做网站网站建设销售好做嘛
  • 邵阳建设网站哪家好手机网站栏目结构图
  • 做动车哪个网站查网站环境配置
  • 那些网站可以做h5国内新闻最新消息今天简短
  • asp网站开发实例河南省建设招投标网站
  • 营销型网站搭建公司有没有专做推广小说的网站
  • 汕头网站搭建wordpress文章列表摘要
  • 网站开发体会800字网站开发新功能
  • 网站域名查询ip杭州pc网站开发公司有哪些
  • 青岛公司网站设计网站后台编辑器内容不显示
  • vc6.0做网站wordpress调用会员等级
  • 哪个网站有做商标网站的类型是什么意思