小编use*_*952的帖子

JSON和处理未导出的字段

编译/ json中是否存在未包含未导出字段的技术原因?如果没有,这是一个任意的决定可以有一个额外的后门选项(说'+')包括即使未导出?

要求客户端代码导出以获得此功能感觉很不幸,特别是如果小写提供封装或者对编组结构的决定要比它们的设计晚得多.

人们如何处理这个问题?只出口一切?

此外,不导出字段名称使得难以遵循建议的习语.我认为如果结构X有字段Y,则不能有一个存取方法Y().如果你想提供对Y的界面访问,你必须为getter提出一个新的名字,不管你会得到什么非惯用的东西,根据http://golang.org/doc/effective_go.html#Getters

json go

62
推荐指数
2
解决办法
3万
查看次数

为什么你会在结构中使用相同的生命周期?

这个问题类似于什么时候在结构中定义多个生命周期有用?,但希望足够不同.这个问题的答案很有帮助,但侧重于一种方法的优点(对结构中的引用使用不同的生命周期),而不是缺点(如果有的话).像这样的问题,正在寻找关于如何在创建结构时选择生命周期的指导.

将此称为捆绑在一起的版本,因为xy需要具有相同的生命周期:

struct Foo<'a> {
    x: &'a i32,
    y: &'a i32,
}
Run Code Online (Sandbox Code Playgroud)

并将其称为松散版本,因为生命周期可能会有所不同:

struct Foo<'a, 'b> {
    x: &'a i32,
    y: &'b i32,
}
Run Code Online (Sandbox Code Playgroud)

引用问题的答案给出了一个明确的案例,其中客户端代码可以在松散版本的情况下编译/运行,但是对于捆绑在一起的版本将会失败.是不是所有适用于捆绑版本的客户端代码也适用于松散版本并且保证安全(即安全)?正面不是真的.从结构设计者的角度来看,松散版本显然更加灵活.鉴于它是一个好的/可接受的答案,指导可能是 - 当在结构中使用引用时总是给它们不同的生命周期.

这个建议的缺点是什么,忽略了额外的打字?例如,在结构中要求引用具有相同的生命周期是否有益处?

struct lifetime rust

9
推荐指数
1
解决办法
127
查看次数

使用默认值初始化成员的最优雅方式

有没有办法利用初始化列表来选择性地初始化构造函数中的可选参数?下面的示例转换为if(?x)类型中的逻辑,因为不清楚如何在传入的情况下如何在初始化列表中设置_x.

class Point { 
    double _x = 0.0;
    double get x => _x;
    double _y = 0.0;
    double get y => _y;

    Point(
        {
        double x,
        double y
        })
    { 
        if(?x) { _x = x; }
        if(?y) { _y = y; }
    }
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用构造函数:

Point(
      {
        double x: 0.0,
        double y: 0.0
      }) : _x = x, _y = y
{
}
Run Code Online (Sandbox Code Playgroud)

但是你重复自己(0.0多个地方),它看起来像_x和_y初始化两次,一次为成员,然后再由初始化列表.此外,成员初始化程序的好处是它可以是函数调用,而默认参数的默认值似乎需要常量.我希望/意识到性能影响很小.只是想要一个很好的规范方法,可能会用于代码生成.

dart

8
推荐指数
3
解决办法
9785
查看次数

如何解析XMI(或XML)文件

如何在dart中解析XML文件?

我找到了https://github.com/prujohn/dart-xml,但是在一个完整的文件上使用它是不成功的(删除标题后只包含uml:Model元素有PI的问题).

我需要解析从包含UML的Altova UModel导出的XMI文件.如果目前不包括这种特殊电池 - 包含它的时间范围是多少?

dart

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

测试解析的json映射是否相等的好方法是什么?

以下代码打印:

false
false
true
{{a: b}, {a: b}}
Run Code Online (Sandbox Code Playgroud)

import "dart:json" as JSON;

main() {
  print(JSON.parse('{ "a" : "b" }') == JSON.parse('{ "a" : "b" }'));
  print({ "a" : "b" } == { "a" : "b" });
  print({ "a" : "b" }.toString() == { "a" : "b" }.toString());
  Set s = new Set();
  s.add(JSON.parse('{ "a" : "b" }'));
  s.add(JSON.parse('{ "a" : "b" }'));
  print(s);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用json并解析两个等效对象,将它们存储在一个Set中,希望它们不会被复制.情况并非如此,似乎是因为前两行(意外?)导致错误.正确比较两个Map对象的有效方法是什么,假设每个都是JSON.parse()的结果?

dart

6
推荐指数
2
解决办法
504
查看次数

如何在dart组件中加入字体真棒?

以下html在文本左侧显示一个漂亮的相机图标.在尝试设计聚合物组件时,这是如何实现的?

<!doctype html>
<html>
<head>
   <link rel="stylesheet" id="font-awesome-4-css" href="http://astronautweb.co/wp-content/themes/astro2012/css/font-awesome-4.0.3.css?ver=4.0.3" type="text/css" media="all">
</head>
<body>
  <p><i class="fa fa-camera-retro fa-lg"></i> Cool camera</p>
</body>
Run Code Online (Sandbox Code Playgroud)

具体来说,应该在哪里包含链接,应该应用什么样的应用程序设置,模板中的样式应该是什么.

dart dart-polymer

6
推荐指数
2
解决办法
1186
查看次数

如何用dart包防止gitub repo扩散?

假设我想创建一个包的集合,比如说与烹饪有关.我将有一个叫做烹饪的核心包,然后我想要多个烹饪包:

  • 烹调墨西哥
  • 烹调印度
  • 烹饪泰

每个人都会使用烹饪.也许将来会创建更常见的包.在github中设置此结构的方法是什么,这样您就不必为每个创建一个单独的repo,但仍然允许客户端项目只提取他们需要的包.

包可以引用github包中的路径吗?

从pub依赖项页面,它们显示了如何引用git:

dependencies:
  cooking:
    git:
      url: git://github.com/munificent/cooking.git
      ref: some-branch
Run Code Online (Sandbox Code Playgroud)

但理想情况下我想:

dependencies:
  cooking-indian:
    git:
      url: git://github.com/munificent/cooking.git
      ref: some-branch
      # path relative to cooking.git that has pubspec.yaml
      path: cooking-indian
Run Code Online (Sandbox Code Playgroud)

有没有办法让一个github repo与N个包,其中只有一些子集可以通过pub选择?

dart dart-pub

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

非平凡的构造函数可以调用Future返回函数(如何或替代)

假设你有:

class Schema {
    Schema.fromText(String jsonString) {
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在此构造函数中,假设jsonString中提供了一个URL 来下载数据,并且读取URL 的唯一 API是返回Future的API.此外,假设在读取和处理该URL数据时,Schema只是一个有效对象.是否有可能实施......

dart

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

pubspec应该在哪里以及多个应用程序有多少

假设有一个需要有一个项目有3个库和2个应用程序.从pub文档中我选择了如下所示的结构.但是,应用程序的不同之处在于,他们希望自己拥有自己的目录.(http://pub.dartlang.org/doc/#adding-a-dependency)上的文档说明将pubspec.yaml文件放在顶层.是项目文件夹下面的上下文中的顶级

如果有一个pubspec并且它位于/ project级别并与lib共享,那么这不意味着任何lib的用户而不是应用程序会不必要地需要额外的包(比如good_stuff和big_stuff)吗?

/project
    /app
        /app1    (uses l1, package:good_stuff)
        /app2    (uses l1, l2, l3, package:big_stuff)
    /lib
        /l1
        /l2      (uses package:pathos/path.dart)
        /l3      (uses l1 and l2)
        /src
            /l1
            /l2
            /l3
Run Code Online (Sandbox Code Playgroud)

因此,给定这个期望的设置,将创建多少pubspec以及将在何处创建以满足这些依赖性.

dart

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

提供抽象类中方法的默认实现

在下面的示例中,我希望sum getter将返回8,但这是一个编译错误。

Class 'B' has no instance getter 'sum'.
Run Code Online (Sandbox Code Playgroud)

根据规格:

使用抽象类而不是接口具有重要的优势。抽象类可以提供默认的实现。它还可以提供静态方法,从而消除了对服务类(如集合或列表)的需要,它们的全部目的是对与给定类型相关的实用程序进行分组。

提供加和x和y的和的默认实现的正确方法是什么?

abstract class A {
  int get x;
  int get y;
  int get sum => x+y;
}

class B implements A {
  int get x => 3;
  int get y => 5;
}

main() {
  B b = new B();
  print(b.x);
  print(b.sum); // Not working, why not 8?
}
Run Code Online (Sandbox Code Playgroud)

dart

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

标签 统计

dart ×8

dart-polymer ×1

dart-pub ×1

go ×1

json ×1

lifetime ×1

rust ×1

struct ×1