【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java递归下降分析器_递归下降语法分析器[通俗易懂]

    Java递归下降分析器_递归下降语法分析器[通俗易懂]用java语言编写的递归下降语法分析器,是一种适合手写语法编译器的方法,且非常简单。递归下降法对语言所用的文法有一些限制,但递归下降是现阶段主流的语法分析方法,因为它可以由开发人员高度控制,在提供错误信息方面也很有优势。就连微软C#官方的编译器也是手写而成的递归下降语法分析器。使用递归下降法编写语法分析器无需任何类库,编写简单的分析器时甚至连前面学习的词法分析库都无需使用。我们来看一个例子:现在有…

    2022年6月29日
    26
  • GSLB原理介绍

    GSLB原理介绍1.GSLB     GSLB,是GlobalServerLoadBalance的缩写,意思是全局负载均衡。目的是实现在广域网(包括互联网)上不同地域的服务器间的流量调配,保证使用户的请求能被离用户最近或者服务质量最好的服务器来处理,从而确保访问质量。       能通过判断服务器的负载,包括CPU占用、带宽占用等数据,决定服务器的可用性,同时能判断用户(访问者)与服

    2022年6月12日
    86
  • 解决win10 图标 显示 小白纸

    解决win10 图标 显示 小白纸参考http://www.xitongcheng.com/jiaocheng/dnrj_article_61635.html

    2022年10月19日
    3
  • java实现定时器的四种方式_java定时器实现文字内容交换

    java实现定时器的四种方式_java定时器实现文字内容交换前言:Java定时器目前主要有3种实现方式:JDK组件,SpringTask,Quartz框架。1.JDK组件(1)java.util.TimerTaskMyTimerTask.java:publicclassMyTimerTaskextendsTimerTask{@Overridepublicvoidrun(){System.out.println(“MyTimerTask,…

    2026年1月14日
    4
  • C语言生成随机字符串

    C语言生成随机字符串C 语言生成随机字符 VS 6 4 include lt stdio h gt include lt stdlib h gt include lt time h gt constunsigne 63 0abcdefghijk

    2026年1月19日
    1
  • 陈斌老师《数据结构与算法Python版》第五周作业——ASCII谢尔宾斯基地毯

    陈斌老师《数据结构与算法Python版》第五周作业——ASCII谢尔宾斯基地毯陈斌老师《数据结构与算法Python版》第五周作业——ASCII谢尔宾斯基地毯题目思路程序如下总结题目谢尔宾斯基地毯是形如上图的正方形分形图案,每个地毯可分为等大小的9份,其中中央挖空,其余均由更小的地毯组成。现给定地毯大小(行数)与组成地毯的字符元素,请打印相应的地毯图形。注:空腔以半角空格表示;当给定字符元素长度不为1时空格数须与字符长度对应输入格式:输入为两行,分别为地毯大小正…

    2022年7月13日
    21

发表回复

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

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