gpt4 book ai didi

Dart:实例变量在私有(private)类中应该是私有(private)的还是公共(public)的?

转载 作者:行者123 更新时间:2023-12-05 00:11:30 28 4
gpt4 key购买 nike

例如:

class _Foo {
String _var1;
String var2;
}

我总是使用公共(public)变量 var2因为我认为当类已经是私有(private)的时候创建私有(private)变量是没有意义的,因为无论如何你都不能访问私有(private)类。

但是我发现很多人使用私有(private)变量 _var1 .这只是个人喜好吗?当类是私有(private)时,私有(private)实例变量有什么意义?如果你不能访问私有(private)类,你就不能访问它的所有实例变量,不管它们是否是私有(private)的。如果您可以访问同一个库中的私有(private)类,那么您可以访问它的所有实例变量,无论它们是否是私有(private)的。

最佳答案

将类设为私有(private)不会使其成员私有(private),也不会使该类的实例不可访问。

认为
lib/private_class.dart

class Foo {
final _PrivateClass privateClass = _PrivateClass();
}

class _PrivateClass {
String publicFoo = 'foo';
String _privateBar = 'bar';
}
bin/main.dart
import 'package:so_53495089_private_field_in_private_class/private_class.dart';

main(List<String> arguments) {
final foo = Foo();
print(foo.privateClass.publicFoo);
// print(foo.privateClass._privateBar); // invalid because of ._privateBar
}

您不能声明私有(private)类类型的变量或参数,也不能在另一个库中扩展或实现该类或创建该类的实例,
但除此之外没有太大区别。

因此,如果该字段应该对 API 用户隐藏(内部状态),则将该字段设为私有(private)。

关于Dart:实例变量在私有(private)类中应该是私有(private)的还是公共(public)的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53495089/

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