看到这个简单的类和方法:
{
"$project": {
"_id": 0,
"unique": {
"$setDifference": [
"$array2",
"$array1"
]
}
}
导致此错误:
意外的令牌'未来'。
Future get(String url,T f(dynamic e))async {
^^^^^^
当我重命名方法时说get1错误就消失了。这是正常的吗?我有其他类,方法名为get,工作得很好。我在这里错过了什么吗?
更新
在我看来,它不是一个标识符问题。因为我可以命名方法import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart';
import 'package:angular/angular.dart';
@Injectable()
class ApiClient {
final Client _http;
static final _headers = { 'Content-Type': 'application/json' };
static final _encodedHeaders = { 'Content-Type': 'application/x-www-form-urlencoded' };
ApiClient(this._http);
Future<T> get<T>(String url, T f(dynamic e)) async {
try {
final response = await _http.get(url);
var data = JSON.decode(response.body);
print(data);
if(data == null)return null;
final ts = f(data);
return ts;
} catch (e) {
_handleError(e);
return null;
}
}
}
并且不会有任何错误。此外,还有一些内置类具有名为get
的方法(例如get
类)。似乎将Client
命名为泛型方法会导致错误:get
。我同意Vyacheslav Egorov - 正如评论中所述,我认为这是一个解析器错误。
答案 0 :(得分:6)
get
是用于定义getter的内置标识符,不应用作标识符