Dart 2.6引入了一个新的语言特性,叫做“静态扩展成员”。
但是,我不太明白如何使用它。
我希望轻松获取行
或列
的ChildCount
,即使用Row.ChildCount
而不是Row.Children.Lengts
:
void main() {
final row = Row(children: const [Text('one'), Text('two')]),
column = Column(children: const [Text('one'), Text('two'), Text('three')]);
print(row.childCount); // Should print "2".
print(column.childCount); // Should print "3".
}
我试图执行以下操作,但这是一个语法错误:
Row.childCount() => this.children.length;
Column.childCount() => this.children.length;
现在有一个由Flutter团队提供的关于扩展方法的官方视频。
下面是扩展方法如何工作的直观示例:
extension FancyNum on num {
num plus(num other) => this + other;
num times(num other) => this * other;
}
我只是在这里扩展num
并向类中添加方法。可以这样使用:
print(5.plus(3)); // Equal to "5 + 3".
print(5.times(8)); // Equal to "5 * 8".
print(2.plus(1).times(3)); // Equal to "(2 + 1) * 3".
extension on num {}
print(FancyNum(1).plus(2));
通过扩展row
或column
或更好的方法可以实现问题中所需的行为:您可以扩展flex
,它是row
和column
的超级类:
extension ExtendedFlex on Flex {
int get childCount => this.children.length;
}
如果
,这意味着childCount
的当前词法范围中未定义children.lengts
也可以省略此.=>children.lengts
也是有效的。
通过导入flex
的此静态扩展,您可以在任何flex
上调用它,即也可以在每个行
和列
上调用它。行(childr:const[Text('one'),Text('two')])。childCount
将计算为2
。
在针对PHPCMS V9做二次开发的时候,您可以自定义一些全局函数且不影响以后官方升级 您自定义的文件请放置于该文件中 phpcms\libs\functions\extention.func.php或者以.func.php格式命名,放置于如下目录中 phpcms\libs\functions\autoload
我已经创建了一个数据类 如何正确重写/扩展自定义DataClass的toString方法?
函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // He
有没有一种简单的方法可以让用javascript编写的XSLT 1.0中的扩展函数返回一个节点集? 我可以为此创建一个新的java类,但我宁愿在脚本本身中放置一些代码。 当这可以在所有或大多数XSLT处理器(VB脚本?Groovy?C#?)支持的另一种脚本语言中完成时,当然也可以。 我有以下简单脚本: 它返回一个字符串,因此在Xpath表达式中调用函数没有问题<我想要的是一个节点集结果。但是当我把
问题内容: 假设我们有以下代码: 当我们创建一个对象时,该对象最初称为父类构造函数。但是就像私人的一样- 我们收到一个错误。一个好的例子和解决这个问题的方法是多少? 问题答案: 没有出路。你必须创建一个可用的(,或默认)的超级构造函数能够延长。 这种表示法通常用于实用程序类或单例中,在这种情况下,您不希望用户通过扩展实例和实例化子类,或者只是通过调用类的构造函数来自己创建类的实例。 当您只有一个具
问题内容: 我想在Firefox扩展中使用jQuery,我将库导入到xul文件中,如下所示: 但是xul文件中无法识别$()函数,jQuery()也无法识别。 我还尝试过将“ content.document”对象(该对象反映“ document”对象)作为上下文参数传递给jQuery函数,如下所示: 但仍然无法正常工作,以前有人遇到过这个问题吗? 问题答案: 我使用以下内容: 这是一个