gpt4 book ai didi

dart - 检查是否为空?

转载 作者:行者123 更新时间:2023-12-04 05:38:51 24 4
gpt4 key购买 nike

在Dart中,我们通过构造函数简化了变量的初始化:

例如

class Foo
{
Bar _bar;

Foo(this._bar);
}

乍一看,这似乎非常方便。但是根据我在95%的情况下的经验,您希望发送给构造函数的内容不为空。

例如在C#中,我会写:

public class Foo
{
private Bar bar;

public Foo(Bar bar)
{
if (bar == null)
throw new ArgumentNullException("bar");

this.bar = bar;
}
}

所以我的问题是Dart中针对空参数的最佳实践是什么?鉴于我们的语言功能从根本上阻止了它?

最佳答案

在Dart的源代码中,他们抛出ArgumentError
大多数时候,他们不检查null而是检查变量类型。

int codeUnitAt(int index) {
if (index is !int) throw new ArgumentError(index);
// ...

来源: dart/sdk/lib/_internal/lib/js_string.dart#L17

factory JSArray.fixed(int length)  {
if ((length is !int) || (length < 0)) {
throw new ArgumentError("Length must be a non-negative integer: $length");
}
// ...

来源: dart/sdk/lib/_internal/lib/js_array.dart#L25

关于dart - 检查是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20466890/

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