如何在lambda内部使用lambda访问要声明的对象? 例如
final Marker marker = Marker(
position: LatLng(
center.latitude + sin(_markerIdCounter * pi / 6.0) / 20.0,
center.longitude + cos(_markerIdCounter * pi / 6.0) / 20.0,
),
onDragEnd: (LatLng newPosition) async {
print('Old position: ${marker.position}');
},
);
给出错误:Local variable 'marker' can't be referenced before it is declared.
还有
print('Old position: ${position}');
给出错误:Undefined name 'position'.
答案 0 :(得分:0)
坦白地说,您不能这样做。由于错误状态,您无法在变量 FirebaseApp.Create(new AppOptions()
{
Credential = GoogleCredential.FromFile("generatedPrivateKey.json")
});
声明之前引用它。这是有道理的,因为您正在尝试引用指向尚未构造的对象的指针,因此没有指向该对象的指针。
我会考虑为什么您确切需要在其构造函数参数之一中引用marker
变量。您可能正在尝试使用lambda反对对象的设计。如果您确定确实需要在lambda中访问标记的数据,则可以尝试将标记包装在这样的工厂中:
marker
让我知道这是否有帮助。