首先,让我们为这个扩展定义一些标准:
1.如果对象为null或空字符串,则应返回true。
1.我应该可以在一个链接的可空对象上使用它。
1.在使用扩展名时,我不应该使用括号、类型转换或== true
。
下面是一个应该工作的例子:
extension StringExtension on String? {
bool get isEmptyOrNull {
// Implementation
}
}
class MyObject {
MyObject({this.myString});
final String? str;
}
// somewhere in the code:
final MyObject? obj = null;
if(obj?.str.isEmptyOrNull){
print('object was empty string or had the value null');
}
字符串
如果这段代码能够编译,遵循所有的标准,并写出正确的输出,我就认为解决方案是正确的。
4条答案
按热度按时间nukf8bse1#
我试着根据所有的标准写代码,结果是这样的
字符串
但是如果没有带null对象的圆括号,它将产生null而不是布尔值
6vl6ewon2#
是的,可以在Dart中创建字符串扩展名isEmptyOrNull。“
字符串
要使用扩展,只需对任何字符串变量调用isNullOrEmpty方法即可。例如:
型
pftdvrlh3#
这个方法怎么样?
字符串
hsgswve44#
operatot
?.
是一个条件成员访问运算符。条件成员存取运算子只有在算子评估为非Null时,才会将成员存取(
?.
)作业套用至其算子;否则,它会传回null
。即:如果
a
的评估结果为null,则a?.x
的结果为null
。如果
a
的计算结果为非空,则a?.x
的结果与a.x
的结果相同。这样,您的代码将永远无法编译。
字符串