前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Dart学习】–之Runes与Symbols相关方法总结「建议收藏」

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

作者头像
全栈程序员站长
发布2022-09-20 21:07:18
发布2022-09-20 21:07:18
5880
举报

大家好,又见面了,我是你们的朋友全栈君。

一,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.cn/166385.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,Runes
  • 二,Symbols
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档