- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
只是为了避免一些误解,我知道 Google Dart 在库级别处理事情,私有(private)属性和方法可以用下划线前缀标识。
截至 2017 年,这仍然是最新的吗?是否有任何添加对象级别可见性关键字的计划,例如:私有(private)、 protected 或公共(public)?
我不只是想做一些随机的事情,而且我对最佳实践很感兴趣。我的看法是:如果我不想让第一类看到第二类有什么,那么两者都必须在不同的库中,那么这些库就是更大包的一部分。
图书馆=类(class)之间的隐私
包=文件之间的隐私
对隐私的细粒度控制呢?我的意思是也许有一件我想要私有(private)的东西。使用继承时如何使用可见性?我的意思是 protected 关键字可能非常有值(value)。
这是一个文件中的一个小例子:
class one {
int n = 1;
one() {
var test = new two(n);
print(test.showNumber());
}
}
class two {
int n = 2;
two(n) {
this.n += n;
}
int showNumber() {
return n;
}
}
最佳答案
Dart 仍然只有库级别的隐私。
标识符以下划线开头的库级隐私也在运行时强制执行。
分析器在静态分析期间提供了一些附加功能,但在运行时会被忽略。
根据惯例,lib/src
中的库也有。被认为是私有(private)的,现在应该从其他包中导入。 linter ,分析器的插件会通知违规行为。似乎是分析仪本身的一部分。
meta package 提供了一些分析器支持的注解。
@protected
如果公共(public)成员被不在子类中的其他库的代码引用,则会产生警告。 @visibleForTesting
如果公共(public)成员被不在 test
中的代码引用,则产生警告。目录(我假设的同一个包)不确定分析器是否真的警告违规行为,否则计划这样做。 One reason for the current design is that Dart allows dynamic calls, even in strong mode. That means that
o.foo()
cannot be rejected based on "class level privacy" without retaining and checking extra information at runtime. With library/lexical based privacy, it's absolutely clear whethero.foo()
oro._foo()
is allowed (it always is, it's just that the latter can only refer to the_foo
name of the same library). If Dart only had static resolution of identifiers, then it could use static information (like aprivate
declaration) to reject at compile time without a runtime overhead.
关于dart - Google Dart 对方法和属性的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41760323/
我有一个相当冗长的命令行程序,它需要用户输入参数,然后使用这些参数进行处理。我想做的是将程序拆分为交互式和非交互式。我试图这样做,并打算让非交互式程序“调用”交互式程序并使用结果(参数),基于这些参数
谁能解释为什么我们在构造函数的参数中使用大括号。 class Cars { String carName; bool isAuto; // create the constructor
我想知道是否有Dart函数,例如PHP的 strrev()。如果没有,您能否请向我展示任何源代码如何自行实现? 谢谢。 最佳答案 我还没有在API中找到一个新的Dart用户(截至今天下午)。但是,以任
我有一个组件,我想根据一个 bool 值绑定(bind)一个不同的 css 类。我的组件代码中有以下内容: bindCssClass(div, "open", this, "task.isOpen")
我一直在研究如何在dart中播放.wav文件,并且已经能够通过dart:html库中定义的AudioElement成功完成此操作。但是,我对使用dart:web_audio库感兴趣,并且遇到了所有这些
Dart 是否旨在实现许多与 Haxe 相同的功能,以便能够针对其他语言和运行时?它是语言和工具的既定目标还是已知目标? 最佳答案 不。Dart 专门针对 web 应用程序开发(更具体地说,客户端 w
我正在尝试让 dart 正常工作。作为编辑器,我想使用 emacs dart-mode。我有两个关于在没有 dart 编辑器的情况下使用 dart 的问题: 1) 我是否需要手动调用 dart2js,
我正在使用列表来创建墨水瓶按钮。我想将列表放在一个单独的 dart 文件中,并将该文件导入到我使用列表的文件中。我不知道如何导入列表。 https://pastebin.com/mf0kvsGu 我制
我正在编写一个 flutter 应用程序,它通过蓝牙 (FlutterBlue) 向设备发送命令。该设备控制一些 LED。通信总体上运行良好,但是:在用户界面上,我有一个控制光强度的 slider 。
我正在使用来自 Get started: command-line and server apps | Dart 的说明.运行 dart --version 时,我得到: Dart VM versio
var c 返回 3 但 10/7=1.4285,其余为 0.4285,operator % 有错误? void main() { var a = 10; var b = 7; var c
如文档中所述: The const keyword isn’t just for declaring constant variables. You can also use it to create
在 Dart 中,我如何最好地编写相当于(不可变/值/非对象) 的代码输出或引用参数 ? 例如在 C#-ish 中,我可能会编码: function void example() { int re
Dart 支持的多重继承机制有哪些? 最佳答案 不,Dart 不支持多重实现继承。 Dart 具有接口(interface),并且与大多数其他类似语言一样,它具有多个接口(interface)继承。
我正在寻找有关如何制作可以采用位置子参数的 web 组件的资源。就像是: {{value}} // this could be any uneditable element {{value}
使用polymer.dart 的Dart 应用程序的pubspec.yaml 文件如下所示(来自Polymer.dart Code Lab): name: polymer_and_dart descr
今天我决定开始学习 Dart 语言,我从 Tour 开始,那里有一个例子: // These work in a const string. const aConstNum = 0; const aC
我正在查找字符串类和其他一些资源,试图了解如何格式化字符串。首先,我试图将数字填充到字符串中,但不是精度。 例子: int a = 0, b = 5, c = 15, d = 46; String
我知道的大部分是Javascript。我相信“列表”是 Dart 最接近数组的东西,但它们在技术上是一样的吗?将它们视为数组是错误的吗?同样, map 会被视为对象吗?我意识到可能存在差异,但进行这种
现在,白色背景刺痛了我的眼睛,因为这是一个looong的黑夜。是否可以从 Dart 编辑器 (v 0.1) 更改主题(更改为更暗的主题)?选择背景颜色和语法高亮怎么样? 最佳答案 是的,这是可能的,我
我是一名优秀的程序员,十分优秀!