在 Dart 中 - 与许多其他语言一样 - 声明函数的方法不止一种。问题是,是否存在任何差异,即“我什么时候应该使用哪个”?
void foo(int i) {
print('i = $i');
}
void main() {
void Function(int) bar = (int j) {
print('j = $j');
};
foo(1);
bar(2);
}
Run Code Online (Sandbox Code Playgroud)
除了可以被覆盖的事实之外,声明foo或bar其他方面有什么区别吗?bar
我对 Nativescript 事件处理有点困惑。我正在使用明确分离代码隐藏和视图模型的打字稿,并且我试图将 itemTap 属性绑定到视图模型方法(就像在https://github.com/NativeScript/template-hello-world 中显示的示例中一样-ts/blob/master/main-view-model.ts)。
XML:
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo" loaded="pageLoaded" class="page">
<StackLayout>
<ListView items="{{ items }}" itemTap="onItemTapped">
<ListView.itemTemplate>
<Label text="{{ Name }}"/>
</ListView.itemTemplate>
</ListView>
</StackLayout>
</Page>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
import { EventData } from 'data/observable';
import { Page } from 'ui/page';
import { EditItemViewModel } from '../../ViewModels/EditItemViewModel';
export function navigatingTo(args: EventData) {
let page = <Page>args.object;
page.bindingContext = new EditItemViewModel();
}
Run Code Online (Sandbox Code Playgroud)
视图模型:
import { Observable } from 'data/observable';
import { ObjectRelationalMapper } from '../Common/Data'
import { WebServiceDataManager …Run Code Online (Sandbox Code Playgroud) 我有一组自定义类的元素User.现在我简直无法弄清楚,这个类如何实例化.我甚至通过创建另一个对象并从那里拉出EMPTY集来尝试它,如下所示:
Site mySite = new Site(/*some params here*/);
User newUser = new User(/*some other params here*/);
Set<User> users = mySite.getUsers();
users.add(newUser);
mySite.setUsers(users);
Run Code Online (Sandbox Code Playgroud)
但由于mySite.users是null(不是空的),我当然得到一个NullPointerException.
那么,正确的方法是什么?我会非常感激,希望这不是模糊的!
干杯,Stacky