gpt4 book ai didi

flutter - Dart扩展功能仅在与调用它的文件相同时可见

转载 作者:行者123 更新时间:2023-12-03 03:09:35 24 4
gpt4 key购买 nike

假设我创建了两个文件。首先,我创建一个扩展函数,并从另一个文件的类中调用它。

文件 date_extensions.dart :

import 'package:date_format/date_format.dart';

extension on DateTime {
String getSQLFriendly() => formatDate(this, ["yyyy", "-", "MM", "-", "dd", " ", "HH", ":", "mm", ":", "ss"]);
}


和文件 some_date_class.dart :

import 'date_extensions.dart';

class SomeClassWithDate{

DateTime dateTime;

SomeClassWithDate(this.dateTime);

toString() => dateTime.getSQLFriendly();

}

现在,我得到一个错误:
lib/test/some_date_class.dart:9:26: Error: The method 'getSQLFriendly' isn't defined for the class 'DateTime'.
- 'DateTime' is from 'dart:core'.
Try correcting the name to the name of an existing method, or defining a method named 'getSQLFriendly'.
toString() => dateTime.getSQLFriendly();

现在,当我将扩展功能放在调用它的同一个文件中时,一切正常。

这是错误,功能还是我做错了什么?我希望后者是答案。 :)

最佳答案

匿名Dart扩展名(不带名称的扩展名)仅对它们所在的文件可见。

如果要在其他文件上使用它,请给它起一个名字。

import 'package:date_format/date_format.dart';

extension MyExtension on DateTime {}

这可能应该添加到 Dart extensions documentation

关于flutter - Dart扩展功能仅在与调用它的文件相同时可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60002746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com