【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”)

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2020年最佳恶意软件删除工具Top 10「建议收藏」

    2020年最佳恶意软件删除工具Top 10「建议收藏」恶意软件删除工具可以帮助你从个人计算机中删除危险的恶意软件,从而避免受到黑客的攻击并防止以后的攻击隐患。保障你的电脑或笔记本电脑的安全性是非常重要的,因为你永远不知道攻击者何时会对你的设备发起攻击。所以,这意味着你不仅需要杀毒软件,还需要一个恶意软件删除工具。比如,广告软件和间谍软件有很大的不同之处,它们不是病毒。因此,仅查出设备是否已受到恶意软件的影响是远远不够的,而且采用手动删除的方法也是非常不切实际的。故此,恶意软件清除已成为一个普遍的问题。如今,恶意软件感染越来越普遍化,即便你自认为..

    2022年6月24日
    70
  • Odin Inspector 系列教程 — Hide If Attribute[通俗易懂]

    Odin Inspector 系列教程 — Hide If Attribute[通俗易懂]HideIfAttribute用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。传一个属性的名称,此属性的值如果为true或者部位null,则隐藏此属性[HideIf(“IsToggled”)]publicVector3HiddenWhenToggled;[HideIf(“Som…

    2022年7月21日
    9
  • java中高级面试题总结(全面)_java面试题大全

    java中高级面试题总结(全面)_java面试题大全jvm结构原理,GC工作原理Jvm结构:Jvm主要包括四个部分:1、类加载器(ClassLoad)在JVM启动时或者在类运行时将需要的class加载到JVM中。类加载时间与过程:类从被加载到虚拟机内存开始,在到卸载出内存为止,正式生命周期包括了:加载,验证,准备,解析,初始化,使用和卸载7个阶段。其中验证、准备、解析这个三个步…

    2022年8月20日
    7
  • c# listview排序功能_c#入门

    c# listview排序功能_c#入门ListViewColumnSorter.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Collections;usingSystem.Windows.Forms;namespaceMicroblue{   classListViewColumnSorter:IComparer   {       /**/       ///       

    2022年10月3日
    3
  • python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解[通俗易懂]

    python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解[通俗易懂]目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入#一、安装python欢迎…

    2022年6月5日
    592
  • es6中padStart和padEnd

    es6中padStart和padEndpadStart和padEnd是es6中新增的语法这两个方法都是字符串原型上的方法,所以只能对字符串使用是新增的方法不会修改原字符串,只有es5才会改变原数据str.padStart(MaxLength,’填充的内容’)//当str的长度没有达到MaxLength,会将第二个参数填充到这个str前直到相当str.padEnd(MaxLength,’填充的内容’)//和上面一样不过是…

    2025年9月16日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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