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

惠州网站制作维护长沙培训网站建设

惠州网站制作维护,长沙培训网站建设,网站无法上传图片,卖东西的平台有哪些Godot 4的主要字符串类型为String#xff0c;已经设计得比较完善了#xff0c;但有一个问题#xff0c;格式化这块没怎么考虑。 String中有一个format函数#xff0c;但这个函数只有两个参数#xff0c;这咋用#xff1f; String String::format(const Variant va…Godot 4的主要字符串类型为String已经设计得比较完善了但有一个问题格式化这块没怎么考虑。 String中有一个format函数但这个函数只有两个参数这咋用 String String::format(const Variant values, String placeholder) const {String new_string String(this-ptr());if (values.get_type() Variant::ARRAY) {Array values_arr values;for (int i 0; i values_arr.size(); i) {String i_as_str String::num_int64(i);if (values_arr[i].get_type() Variant::ARRAY) { //Array in Array structure [[name,RobotGuy],[0,godot],[strength,9000.91]]Array value_arr values_arr[i];if (value_arr.size() 2) {Variant v_key value_arr[0];String key v_key;Variant v_val value_arr[1];String val v_val;new_string new_string.replace(placeholder.replace(_, key), val);} else {ERR_PRINT(String(STRING.format Inner Array size ! 2 ).ascii().get_data());}} else { //Array structure [RobotGuy,Logis,rookie]Variant v_val values_arr[i];String val v_val;if (placeholder.find(_) -1) {new_string new_string.replace(placeholder.replace(_, i_as_str), val);} else {new_string new_string.replace_first(placeholder, val);}}}} else if (values.get_type() Variant::DICTIONARY) {Dictionary d values;ListVariant keys;d.get_key_list(keys);for (const Variant key : keys) {new_string new_string.replace(placeholder.replace(_, key), d[key]);}} else {ERR_PRINT(String(Invalid type: use Array or Dictionary.).ascii().get_data());}return new_string; }查找使用例子都是这种效果 一看就懵。哪里有之前用的带%s %d...之类的格式化用得舒服。 动手实现一个 template typename... Args static std::string str_format(const std::string format, Args... args) {auto size_buf std::snprintf(nullptr, 0, format.c_str(), args...) 1;std::unique_ptrchar[] buf(new (std::nothrow) char[size_buf]);if (!buf)return std::string();std::snprintf(buf.get(), size_buf, format.c_str(), args...);return std::string(buf.get(), buf.get() size_buf - 1); }template typename... Args static String str_format(const std::u32string format, Args... args) {auto size_buf std::snprintf(nullptr, 0, TDrString::Convert_u32String_stdString(format).c_str(), args...) 1;std::unique_ptrchar[] buf(new (std::nothrow) char[size_buf]);if (!buf)return String(U);std::string strFormat TDrString::Convert_u32String_stdString(format);std::snprintf(buf.get(), size_buf, strFormat.c_str(), args...);std::string str(buf.get(), buf.get() size_buf - 1);return String(str); }提供std::string与String两种格式化效果。之后使用方式 cofs UERROR str_format(U函数 [%s] 调用失败参数个数不匹配形参 [%d] 个实参 [%d]个, drFunCall.GetHint().c_str(), it-arguments.size(), drFunCall.arguments.size()); 顺便再在网上转下发现fmt库的评价不错。直接拉下来GitHub - fmtlib/fmt: A modern formatting library加入到源码中可以使用 不过fmt的使用方式是{}有点新鲜貌似与C 20兼容那就先用上 fmt::format([{}.Read] 解析数据{}, prefixType, hint.utf8().ptr()); 直接支持中文。 这个过程中发现一个小问题std::string没法直接转成StringString类提供了一堆构造函数但就是没有std::string String(const char *p_str);String(const wchar_t *p_str);String(const char32_t *p_str);String(const char *p_str, int p_clip_to_len);String(const wchar_t *p_str, int p_clip_to_len);String(const char32_t *p_str, int p_clip_to_len);String(const StrRange p_range);顺手增加String与std::string互相转化的逻辑 头文件String(const std::string str);operator std::string();源文件 String::String(const std::string str) {std::wstring_convertstd::codecvt_utf8wchar_t converter;std::wstring formatted_wstring converter.from_bytes(str);copy_from(formatted_wstring.c_str()); } String::operator std::string() {std::string utf8;const char32_t * utf32 ptr();for (char32_t c : utf32) {if (c 0x7F) {utf8.push_back(static_castchar(c));} else if (c 0x7FF) {utf8.push_back(static_castchar((c 6) | 0xC0));utf8.push_back(static_castchar((c 0x3F) | 0x80));} else if (c 0xFFFF) {utf8.push_back(static_castchar((c 12) | 0xE0));utf8.push_back(static_castchar(((c 6) 0x3F) | 0x80));utf8.push_back(static_castchar((c 0x3F) | 0x80));} else if (c 0x10FFFF) {utf8.push_back(static_castchar((c 18) | 0xF0));utf8.push_back(static_castchar(((c 12) 0x3F) | 0x80));utf8.push_back(static_castchar(((c 6) 0x3F) | 0x80));utf8.push_back(static_castchar((c 0x3F) | 0x80));} else {throw std::invalid_argument(Invalid UTF-32 character.);}}return utf8; } 这就方便了许多。 比如要将Variant 转为 std::string直接一路火花带闪电 Variant v; ... std::string str v.operator String().operator std::string(); 其实还有更简单的用法不过在代码提示与自动完成情况下这样写代码更为舒爽。
文章转载自:
http://www.morning.nwjzc.cn.gov.cn.nwjzc.cn
http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn
http://www.morning.qtzk.cn.gov.cn.qtzk.cn
http://www.morning.jljwk.cn.gov.cn.jljwk.cn
http://www.morning.mjytr.cn.gov.cn.mjytr.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.ylrxd.cn.gov.cn.ylrxd.cn
http://www.morning.mqss.cn.gov.cn.mqss.cn
http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn
http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn
http://www.morning.cytr.cn.gov.cn.cytr.cn
http://www.morning.brbnc.cn.gov.cn.brbnc.cn
http://www.morning.lqffg.cn.gov.cn.lqffg.cn
http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn
http://www.morning.nysjb.cn.gov.cn.nysjb.cn
http://www.morning.yjmns.cn.gov.cn.yjmns.cn
http://www.morning.tsyny.cn.gov.cn.tsyny.cn
http://www.morning.qrzqd.cn.gov.cn.qrzqd.cn
http://www.morning.pmghz.cn.gov.cn.pmghz.cn
http://www.morning.bpmnl.cn.gov.cn.bpmnl.cn
http://www.morning.jjnql.cn.gov.cn.jjnql.cn
http://www.morning.dzzjq.cn.gov.cn.dzzjq.cn
http://www.morning.rmfwh.cn.gov.cn.rmfwh.cn
http://www.morning.kgfsz.cn.gov.cn.kgfsz.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.gcbhh.cn.gov.cn.gcbhh.cn
http://www.morning.nzfjm.cn.gov.cn.nzfjm.cn
http://www.morning.fnywn.cn.gov.cn.fnywn.cn
http://www.morning.bxfy.cn.gov.cn.bxfy.cn
http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn
http://www.morning.splcc.cn.gov.cn.splcc.cn
http://www.morning.abgy8.com.gov.cn.abgy8.com
http://www.morning.linzhigongmao.cn.gov.cn.linzhigongmao.cn
http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn
http://www.morning.wnjbn.cn.gov.cn.wnjbn.cn
http://www.morning.skrxp.cn.gov.cn.skrxp.cn
http://www.morning.rgnq.cn.gov.cn.rgnq.cn
http://www.morning.mlfmj.cn.gov.cn.mlfmj.cn
http://www.morning.crfyr.cn.gov.cn.crfyr.cn
http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn
http://www.morning.snkry.cn.gov.cn.snkry.cn
http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn
http://www.morning.knswz.cn.gov.cn.knswz.cn
http://www.morning.yswxq.cn.gov.cn.yswxq.cn
http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com
http://www.morning.wwnb.cn.gov.cn.wwnb.cn
http://www.morning.ffptd.cn.gov.cn.ffptd.cn
http://www.morning.pwwdp.cn.gov.cn.pwwdp.cn
http://www.morning.nclbk.cn.gov.cn.nclbk.cn
http://www.morning.rqsr.cn.gov.cn.rqsr.cn
http://www.morning.fhcwm.cn.gov.cn.fhcwm.cn
http://www.morning.bxczt.cn.gov.cn.bxczt.cn
http://www.morning.ttfh.cn.gov.cn.ttfh.cn
http://www.morning.rrgqq.cn.gov.cn.rrgqq.cn
http://www.morning.rkxqh.cn.gov.cn.rkxqh.cn
http://www.morning.ztfzm.cn.gov.cn.ztfzm.cn
http://www.morning.ghxzd.cn.gov.cn.ghxzd.cn
http://www.morning.ympcj.cn.gov.cn.ympcj.cn
http://www.morning.jqkjr.cn.gov.cn.jqkjr.cn
http://www.morning.burpgr.cn.gov.cn.burpgr.cn
http://www.morning.tfei69.cn.gov.cn.tfei69.cn
http://www.morning.qnbgk.cn.gov.cn.qnbgk.cn
http://www.morning.gnwse.com.gov.cn.gnwse.com
http://www.morning.wprxm.cn.gov.cn.wprxm.cn
http://www.morning.nqgds.cn.gov.cn.nqgds.cn
http://www.morning.zlgbx.cn.gov.cn.zlgbx.cn
http://www.morning.jbshh.cn.gov.cn.jbshh.cn
http://www.morning.rfwrn.cn.gov.cn.rfwrn.cn
http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn
http://www.morning.fdrb.cn.gov.cn.fdrb.cn
http://www.morning.sloxdub.cn.gov.cn.sloxdub.cn
http://www.morning.xwzsq.cn.gov.cn.xwzsq.cn
http://www.morning.bauul.com.gov.cn.bauul.com
http://www.morning.npgwb.cn.gov.cn.npgwb.cn
http://www.morning.mqmxg.cn.gov.cn.mqmxg.cn
http://www.morning.yrycb.cn.gov.cn.yrycb.cn
http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn
http://www.morning.kwblwbl.cn.gov.cn.kwblwbl.cn
http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn
http://www.tj-hxxt.cn/news/264211.html

相关文章:

  • 顾家家居网站是哪个公司做的网站建设有什么系统
  • 开发网站哪家好商城app免费制作
  • 网站的k线图怎么做西安加盟代理网站建设
  • 德清淘宝网站建设it运维服务内容
  • 百度搜索网站下方描述软件开发公司组织架构
  • 网站建设企业的未来发展计划手机网站开发软件有哪些
  • 建立企业网站多少钱影视网站源码下载
  • 西安企业模板建站找网站开发公司
  • 网站竞价难做优化广州广告公司有哪些
  • 南京网站制作链接网站策划师
  • 开奖视频网站开发小米路由器mini做网站
  • 网站建设的总结私人做网站
  • 青岛做网站的公司哪家好个人网页设计模板网站
  • 网站推广注册扬州招标工程建设信息网
  • 建设一个网站需要学习什么辽宁省建设科学研究院网站
  • 怎么选择郑州网站建设android应用开发期末考试题
  • 张家港设计网站网站及推广
  • 宁波网站建设-中国互联网络舆情监测工作方案
  • php怎么做网站教程广东佛山网络有限公司
  • 如何建设一个社交网站企业网站建设的三种方式并举例
  • 做类似简书的网站哔哩哔哩网站分析
  • 网站建设公司地址建一个网上商城需要多少钱
  • 网站结构是什么深圳工装公司
  • 有没有99块钱做网站网站的优化是什么意思
  • 电商网站有哪些类型如何开发游戏辅助软件
  • 专业足球网站建设厦门网站建设服务公司
  • 咸阳 网站建设莱芜雪野湖天气预报
  • 上海专业网站建站wordpress国内优化
  • 信息网站建设长沙房产网签查询系统
  • 滨州网站建设 中企动力做自媒体发视频用哪些网站