命名方法`get`会导致错误

时间:2018-02-28 17:49:35

标签: dart angular-dart

看到这个简单的类和方法:

{
"$project": {
    "_id": 0,
    "unique": {
        "$setDifference": [
            "$array2",
            "$array1"
        ]
    }
}

导致此错误:

  

意外的令牌'未来'。

     

Future get(String url,T f(dynamic e))async {

     

^^^^^^

当我重命名方法时说get1错误就消失了。这是正常的吗?我有其他类,方法名为get,工作得很好。我在这里错过了什么吗?

See the issue on github

更新

在我看来,它不是一个标识符问题。因为我可以命名方法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 - 正如评论中所述,我认为这是一个解析器错误。

1 个答案:

答案 0 :(得分:6)

get是用于定义getter的内置标识符,不应用作标识符

https://www.dartlang.org/guides/language/language-tour enter image description here