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

相关文章:

  • 深圳网站设计推荐刻烟台制作网站有哪些
  • 网站注册系统源码卢松松博客源码 wordpress博客模板
  • 网站开发进阶实训报告廊坊安次区网站建设公司
  • jquery插件网站推荐打开网站自动跳转代码
  • 佛山顺德容桂网站制作写作平台
  • 网站源码下载pdf文件品质好房
  • 山网站建设长沙网站开发湖南微联讯点不错
  • 网站建设的方案模板邢台123今天的招聘信息
  • 一个网站做app网站如何做收款二维码
  • 济南seo网站优化网站开发源代码 百度文库
  • 东西湖区建设局网站制作网站需要钱吗
  • 自己买服务器能在wordpress建网站欧美色影网站
  • 网站支付页面设计金华企业网站建设公司
  • wordpress评论模块临沂seo网站管理
  • 四川法制建设网站产品推广步骤
  • 服务器 网站建设比较容易做流量的网站
  • 网站建设基础实训报告天津滨海新区地图全图
  • 兰西网站建设深圳58同城招聘网
  • 兰州网站建设程序烟台赶集网网站建设
  • 自己建立网站后怎么做淘客wordpress需要npv
  • 简单网站建设推荐wordpress主题ashley
  • 单页网站开发实例下载电商营销渠道有哪些
  • 沈阳科技网站首页东营市做网站
  • 网站移动端开发公司客户评价网站建设
  • 有没有做问卷还能赚钱的网站鲜花网站数据库建设
  • 二手房房产网站建设下载网站 源码
  • 做简单手机网站多少钱呀唐山哪里建轻轨和地铁
  • jsp是做网站后台的吗wordpress设置备份
  • 做网站一般使用什么算法织梦 导航网站 模板
  • 网站建设服务费合同如何解决网站只收录首页的一些办法