我想Iterable用一些自定义代码增强所有s.为此,我写了以下内容:
implicit class RichIterable[A, B <: Iterable[A]](b: B) {
def nonEmptyOpt: Option[B] = if (b.nonEmpty) Some(b) else None
}
Run Code Online (Sandbox Code Playgroud)
现在,当我想用这种方法在List那绝对是的一个子类Iterable,像这样
List(1, 2, 3).nonEmptyOpt
Run Code Online (Sandbox Code Playgroud)
我明白了
value nonEmptyOpt is not a member of List[Int]
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我有一个聚合物元素与以下html:
<polymer-element name="tab-bar">
<template>
<button>Hello</button>
<template repeat="{{item in items}}">
<div>This element is {{ item }}</div>
</template>
</template>
<script type="application/dart" src="tab_bar.dart"></script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)
底层的dart类如下所示:
import 'package:polymer/polymer.dart';
@CustomTag('tab-bar')
class TabBar extends PolymerElement {
List items;
TabBar(List<String> items) {
this.items = toObservable(items);
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下方法,无法以编程方式添加元素:
query('body').children.add(createElement(new TabBar(['One','Two','Three'])));
Run Code Online (Sandbox Code Playgroud)
那么现在,我如何以编程方式添加这样的聚合物元素,并在构造函数中设置列表?
普通的 DartRandom类支持的 Random 值最大为(1 << 32) - 1,这确实很大,但是我如何生成比这个大得多的数字呢?(我的意思是更大((1 << 32) - 1) * 10^50或类似的东西。
我已经使用飞镖了很长一段时间了.如果我想为类的对象实现动态getter,setter和函数,我可以使用noSuchMethod方法.但是,如果我现在想要在类层上拥有这样一个动态getter方法,那该怎么办呢?例如,在Ruby中,如果想要实现动态类方法,可以method_missing在类对象上定义-method,例如:
class Test
def self.method_missing
//Do some matching, return result or error
end
end
Run Code Online (Sandbox Code Playgroud)
我如何在Dart中实现这一目标?