gpt4 book ai didi

flutter - Dart 中的 'Private properties' 是什么?

转载 作者:行者123 更新时间:2023-12-03 08:17:29 24 4
gpt4 key购买 nike

在学习 Dart 时,我注意到私有(private)属性以下划线开头。那么私有(private)属性(property)是什么意思呢?

class OfficialName extends Name {
// Private properties begin with an underscore
final String _title;

OfficialName(this._title, String first, String last)
: super (first, last);

@override
String toString(){
return 'S_title. ${super.toString()}';
}
}

最佳答案

私有(private)属性是那些只能在声明它们的文件中访问的属性。换句话说,只有 dart 文件中找到这些私有(private)属性的 dart 代码“知道”这些私有(private)属性。

考虑以下示例

lib/foo.dart

class Foo {
var _foo = 'foo';
var bar = 'bar';
}

main() {
print(Foo()._foo); // foo
print(Foo().bar); // bar
}

然后在lib/bar.dart

import './foo.dart';

main() {
// print(Foo()._foo); // this won't work
print(Foo().bar); // bar
}

运行这两个文件将显示注释结果。但是,如果 bar.dart 中的 print(Foo()._foo); 行未注释,编译器将抛出一个错误,即 getter '_foo' 不是为类“Foo”定义。这是因为 Foo 类上的 _foo 属性是 foo.dart 文件私有(private)的。

在 Dart 中,每个文件都是一个库。因此,隐私或私有(private)属性(property)的范围仅限于每个图书馆是有道理的。

要创建私有(private)属性,无论是字段还是方法,只需在其名称前添加下划线 _ 即可。

因此,在编码时,如果您认为其他 dart 文件(或库)不应该访问某些属性(可能是因为隔离逻辑),那么您可以将它们设为私有(private)(通过添加下划线前缀 _)。

关于flutter - Dart 中的 'Private properties' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68915647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com