【Dart学习】–之Runes与Symbols相关方法总结「建议收藏」

【Dart学习】–之Runes与Symbols相关方法总结「建议收藏」一,Runes在Dart中,Runes代表字符串的UTF-32字符集,另一种StringsUnicode为每一个字符、标点符号、表情符号等都定义了一个唯一的数值由于Dart字符串是UTF-1

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一,Runes

  • 在Dart中,Runes代表字符串的UTF-32字符集, 另一种Strings
  • Unicode为每一个字符、标点符号、表情符号等都定义了 一个唯一的数值
  • 由于Dart字符串是UTF-16的字符序列,所以在字符串中表达32的字符序列就需要新的语法了
  • 通常使用\uXXXX的方式来表示, 这里的XXXX是4个16进制的数, 如,心形符号(♥)是\u2665
  • 对于非4个数值的情况,把编码值放到大括号中即可, 如,笑脸emoji (?) 是\u{1f600}
  • String类有一些属性可以提取rune信息
    • codeUnitAt和codeUnit属性返回16为字符
    • 使用runes属性来获取字符串的runes信息

      var clapping = \u{1f44f};
      print(clapping);
      // ?
      print(clapping.codeUnits);
      // [55357, 56399]
      print(clapping.runes.toList());
      // [128079]

  • 简单使用
    •  根据字符串创建

      Runes runes = new Runes(\u2665, \u{1f605}, \u{1f60e});
      print(runes);
      // (9829, 44, 32, 128517, 44, 32, 128526)

    • 输出特殊字符的字符串

      print(new String.fromCharCodes(runes)); // ♥, ?, ?

由于Runes也是继承于Iterable, 所以Runes中的属性和方法的使用也和Iterable一样, 详情参考Runes和Flutter开发之Dart的数据类型01中的介绍

二,Symbols

  • 一个Symbol对象代表Dart程序中声明的操作符或者标识符
  • 也许不会用到Symbol,但是该功能对于通过名字来引用标识符的情况 是非常有价值的,特别是混淆后的代码,标识符的名字被混淆了,但是Symbol的名字不会改变
  • 使用Symbol字面量来获取标识符的symbol对象,也就是在标识符前面添加一个 # 符号
  • 获取symbol 对象

    var sym1 = Symbol(name);
    print(sym1);
    // Symbol(“name”)

  • #号创建

    var sym2 = #titan;
    print(sym2);
    // Symbol(“titan”)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166385.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中

    学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中

  • golang coredump分析「建议收藏」

    背景最近在分析golang的一个内存泄漏问题。一般来讲,使用golang自带的pprof工具就可以分析内存的使用,协程情况,是否有block等情况。但是我们项目中调用了C库,导致C库的一些东西没法通过pprof来进行监控分析。实际上通过pprof来监控程序的话,内存是稳定的,但是占用Linux的内存是一直增长的,即RES一直增长,实际上程序是有泄漏的。怀疑是使用C库导致,所以通过coredump…

  • 详解springBoot集成activiti7,工作流实战案例(三)

    详解springBoot集成activiti7,工作流实战案例(三)快速使用IDEA搭建SpringBoot项目,集成Activiti7(一)详解springBoot集成activiti7,使用actiBPM绘制流程图(二)过程分析:部署流程 启动一个流程实例 查询当前流程中等待执行的任务 处理任务 流程结束用到activiti的service(ps:记得注入):RepositoryService RuntimeService…

    2022年10月19日
  • visual studio运行程序的快捷键_visual studio快捷方式在哪

    visual studio运行程序的快捷键_visual studio快捷方式在哪目录一、系统快捷键二、常用系统命令三、QQ快捷键四、IE浏览器快捷键使用大全五、Word 中的快捷键六、Excel 中的快捷键七、PowerPoint 中的快捷键八、Visual Studio九、Eclipse十、Photoshop十一、批处理指令十二、安装操作系统(此快捷操作对我们程序员十分重要,所以放在前面)八、Visual Studio8.1、项目相关的快捷键…

  • 迭代器Python_Python进阶

    迭代器Python_Python进阶迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。可迭代对象我们已经知道可以对l

  • 浅谈搜索引擎技术原理与架构设计_小米商城搜索引擎架构

    浅谈搜索引擎技术原理与架构设计_小米商城搜索引擎架构搜索引擎是我们非常熟悉的互联网产品,上网都离不开搜索,毫无疑问,在pc端,是多数流量的入口。大家都会说,“有问题,百度一下”,当初百度靠这句广告语,打开了国内很大的市场。曾经看过一个百度员工写的段子:

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号