小编Jun*_*ont的帖子

在Dart和Pub中,我应该将pubspec.lock添加到我的.gitignore吗?

我应该将此生成的文件添加到我的文件中,.gitignore以便它不会显示在我的存储库中吗?

应该pubspec.lock包含在我的存储库中?

dart dart-pub

15
推荐指数
1
解决办法
1619
查看次数

如何在Dart中尚不存在的目录结构中创建文件?

我想创建一个文件,说foo/bar/baz/bleh.html,但没有目录foo,foo/bar/等等存在.

如何创建我的文件以递归方式创建所有目录?

dart dart-io

12
推荐指数
3
解决办法
1718
查看次数

从vim命令行回显函数调用

我该怎么做:

:echo call MyFunction()
Run Code Online (Sandbox Code Playgroud)

这样我可以看到调用函数的结果?

vim

10
推荐指数
1
解决办法
2717
查看次数

在Dart with Pub中,何时应该对依赖项使用"any"版本约束?

在制作包时,我经常对是否应该使用any约束感到困惑.

我知道这个:

但是有一个灰色区域:

  • 要扩展的应用程序,例如codelabs,教程,模板,示例等.

  • 同样具有可重用库的应用程序 ; 也就是说,包含具有lib通用功能目录的包,这些目录在放入单独的包中是没有意义的,但也是web完整应用程序的目录.


问题:我应该何时使用any版本约束,何时应该完全指定Pub包的版本约束?

versioning dart semantic-versioning dart-pub

8
推荐指数
1
解决办法
86
查看次数

在Dart中,如果我不知道它的类型,是否使用dynamic或Object注释函数返回值?

如果我有一个返回未知类型值的函数,我是否使用dynamic,代表任何对象,或者Object,它是所有其他类型的祖先?

风格指南讨论了参数的这个问题,而不是返回值.

我应该如何注释返回值以及为什么?

dart

7
推荐指数
1
解决办法
859
查看次数

在Dart中,如果我听两个听众的点击事件,我怎么知道哪个先发生?

如果我写下面的Dart代码,我怎么知道哪个点击处理程序首先发生?

main() {
  var button = new ButtonElement();
  var stream = button.onClick.asBroadcastStream();

  stream.listen(clickHandler1);
  stream.listen(clickHandler2);
}
Run Code Online (Sandbox Code Playgroud)

假设我在其他代码中对前两个点击处理程序一无所知,但我注册了另一个.

  • 我能知道该流有两个监听器吗?
  • 我可以暂停或取消所有其他订阅者吗?
  • 如果我button.onClick.asBroadcastStream()在其他地方再次写入,它是否指向与使用的相同的流main
  • 我可以在其中一个处理程序中说不将事件传递给其他广播监听器吗?那是消费者吗?

dart dart-html

6
推荐指数
1
解决办法
1267
查看次数

Dart - 使用Map命名参数

我想知道我是否可以使用地图调用具有名称参数的函数,例如

void main()
{
  Map a = {'m':'done'}; // Map with EXACTLY the same keys as slave named param.
  slave(a);
}
void slave({String m:'not done'}) //Here I should have some type control
{ 
  print(m); //should print done
}
Run Code Online (Sandbox Code Playgroud)

这里的黑客不是使用kwargs而是使用Map,或者,如果你关心类型,那么一些接口类(就像Json-obj一样),但只是让它接受map为kwars会不会更优雅?更多,使用这个hack,可选的kwargs可能会变成一种痛苦...恕我直言可能的实现,如果它还不存在,将是这样的:

slave(kwargs = a)
Run Code Online (Sandbox Code Playgroud)

例如,接受命名param的每个函数都可以默默地接受(Map)kwargs(或其他名称)参数,如果定义dart应该在引擎盖下处理这个逻辑:如果Map中的键完全是非可选的,加上{}括号中定义的一些可选项,以及兼容类型"继续".

dart

6
推荐指数
1
解决办法
1474
查看次数

如何在web文件夹中组织dart代码

根据Package布局约定,web文件夹应包含以下内容:

HTML,CSS,图像,甚至可能是一些JavaScript.所有这些都进入了你的包的web目录.您可以自由地将内容组织到您的内心.如果让你开心的话,对子目录发疯吧.

所以我的web目录看起来像这样:

web/data_access
web/model
web/ui
web/ui/navigation
etc.
Run Code Online (Sandbox Code Playgroud)

现在,如何管理所有这些import语句.我得到了很多声明:

import '../../model/my_model.dart';
import '../../data_access/mock_dao.dart';
etc.
Run Code Online (Sandbox Code Playgroud)

我不喜欢../在我的导入中使用那么多,因为这很脆弱,每当我更改文件夹结构中的任何内容时,我都会遇到问题.

有没有更好的方法来组织web文件夹中的代码?

要么

还有其他方法可以进口吗?

dart dart-pub

5
推荐指数
1
解决办法
1646
查看次数

如何在 Vim 中将波形符运算符从 '==' 更改为 '!=' ?

我希望正常模式命令 tilde\xc2\xa0 ~,除了更改字母的大小写之外,还能够将文本\xc2\xa0 更改==为\xc2\xa0!=和\xc2\xa0更改!=为\xc2\xa0 ==

\n\n

我发现我经常这样做,并且我想要一个仍然使用波浪号的快捷方式。

\n

vim

4
推荐指数
1
解决办法
1522
查看次数

在Dart中,如果我将Future.wait与Futures列表一起使用并且其中一个期货出现错误,那么其他期货会发生什么?

如果我有以下代码:

Future<int> a = new Future(() { print('a'); return 1; });
Future<int> b = new Future.error('Error!');
Future<int> c = new Future(() { print('c'); return 3; });

Future.wait([a, b, c])
  .then((List<int> values) => print(values))
  .catchError((e) => print(e));
Run Code Online (Sandbox Code Playgroud)

什么印刷?

陷入错误的是否catchError知道Future死了什么?或者哪个期货仍然存在?

dart

4
推荐指数
1
解决办法
1331
查看次数

如何按顺序处理异步代码

我已经阅读了很多关于此的帖子和文章(异步和期货),我不确定目前的情况如何.我尝试了许多不同的变化.

我按顺序尝试以下代码:

import 'dart:async' as async;
import 'dart:io';
import 'dart:math';
import 'package:postgresql/postgresql.dart' as pg;

var uri = 'postgres://admin:admin@localhost:5432/testdb';
List lgNames = ['Peter', 'Robert', 'Mary', 'Marg', 'William',
           'Vern', 'Dermot', 'Monty', 'Peggy', 'Sue', 'William'];

List lgUsed = [];

Random rand1 = new Random();

void main() {
  pg.connect(uri).then((oDb) {
   print ("Connected to database");

    fClearTable(oDb).then((String sResult){
      print(sResult);      

      for (int iPos = 0; iPos < 3; iPos++) {   
        fListTable(oDb, "Select before Insert number ${iPos+1}").then((String sResult) =>
          print(sResult));  

        fInsertData(oDb, "Insert Number ${iPos+1}").then((String sResult) =>
          print(sResult));        

        fListTable(oDb, …
Run Code Online (Sandbox Code Playgroud)

dart

4
推荐指数
1
解决办法
179
查看次数

dart 方法调用上下文

我使用下面的内容来查看 dart 如何调用传入其他方法的方法,以查看传入方法将/可以在什么上下文下调用。

void main() {

  var one = new IDable(1);
  var two = new IDable(2);

  print('one ${caller(one.getMyId)}');             //one 1
  print('two ${caller(two.getMyId)}');             //two 2
  print('one ${callerJustForThree(one.getMyId)}'); //NoSuchMethod Exception

}

class IDable{
  int id;
  IDable(this.id);

  int getMyId(){
    return id;
  }
}

caller(fn){
  return fn();
}

callerJustForThree(fn){
  var three = new IDable(3);
  three.fn();
}
Run Code Online (Sandbox Code Playgroud)

那么 manager 如何在没有上下文的情况下caller调用其参数ie ,以及为什么无法调用为其定义了该函数的对象传递的参数?fnone.fn()callerJustForThreefn

scope dart

2
推荐指数
1
解决办法
2337
查看次数