flutter - Dart 将简单类转换为扩展
问题描述
在这里我粘贴了我的简单类,我可以将英文数字转换为阿拉伯数字,我想将其转换为扩展名
class Strings{
static String replaceFarsiNumber(String input, bool reverse) {
const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
const farsi = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
/*en to fa*/
if (reverse) {
for (int i = 0; i < english.length; i++) {
input = input.replaceAll(english[i], farsi[i]);
}
} else {
for (int i = 0; i < english.length; i++) {
input = input.replaceAll(farsi[i], english[i]);
}
}
return input;
}
}
正如我extensions
在 dart 中的新手,我正在使用这个类,flutter
我基本上如何将它转换为扩展:
extension ConvertNum on String {
static const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
static const farsi = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
String changeNUm(String input, bool reverse) {
/*en to fa*/
if (reverse) {
for (int i = 0; i < english.length; i++) {
input = input.replaceAll(english[i], farsi[i]);
}
} else {
for (int i = 0; i < english.length; i++) {
input = input.replaceAll(farsi[i], english[i]);
}
}
return input;
}
}
解决方案
你几乎拥有它。基本上,内部和扩展,用于this
引用当前字符串:
extension ConvertNum on String {
static const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
static const farsi = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
String changeNUm(bool reverse) {
/*en to fa*/
String input = this;
if (reverse) {
for (int i = 0; i < english.length; i++) {
input = input.replaceAll(english[i], farsi[i]);
}
} else {
for (int i = 0; i < english.length; i++) {
input = input.replaceAll(farsi[i], english[i]);
}
}
return input;
}
}
推荐阅读
- c++11 - QComboBox currentIndexChanged 在 QGraphicsView 上无法正常工作
- angular - Firestore 中批量事务更新期间的问题
- javascript - Javascript fetch() 故障转移 URL
- api - 如何在单个 docker 容器中托管多个烧瓶应用程序?
- pointers - 由于自动生成的指针,无法在消息中嵌入消息
- apache-spark - 如何通过 Spark 运行 HDFS 文件系统命令?
- python - 在python中记录所有http请求
- node.js - EJS条件导入不显示html
- java - 2.1 企业 bean 上的资源引用标记
- python-3.x - 如何使用 asyncio 和 aiohttp 进行循环而不是 for 循环?