我得到这个奇怪的错误消息时,移动的号码验证失败Closure(String?)=>dynamic from Function mobileNumber static must has 10 characters
在这里,这是预期的输出mobileNumber static must has 10 characters
,但我用这个Closure(String?)=>dynamic from Function
得到它
我试着删除静态,然后我无法调用它,这是完整的代码
static mobileNumber(String? txt) {
if (txt == null || txt.isEmpty) {
var mobileNumber = 'Mobile Number';
return "Invalid $mobileNumber!";
}
print(txt.length);
if (txt.length != 10) {
return "$mobileNumber must has 10 characters";
}
if (!txt.contains(RegExp(r'[0-9]'))) {
return "$mobileNumber must has digits";
} else {}
}
1条答案
按热度按时间s8vozzvw1#
这是一个变量名/作用域冲突。
您正在为函数使用相同的名称
mobileNumber
,并在函数内部使用相同的名称。内部变量“mobileNumber”仅在if语句中创建
在if变量之外,mobileNumber是一个函数
static mobileNumber...
将代码改为如下所示