d - D语言中的"With" block

标签 d with-statement

经典的 with block 在 D 语言中可用吗?

我正在寻找以下行为:

struct Address {
  string street;
  int number;
}

struct Person {
  Address address;
}

// in some function
Person p = ...
with(p.address) {
  street = "Wide St.";
  number = 123;
}

// I am open to other solutions, if they could work e.g.
p.address.with => { street = ...; number = ...; }

assert(p.address.street == "Wide St.");

如果它不可用,您将如何更新嵌套结构的多个字段?在 C++ 中,我会将 nested 分配给一个引用。

最佳答案

你为什么不咨询D Language Reference ?只需点击几下,我就找到了 http://dlang.org/statement#WithStatement ,这回答了你的问题。 如果你懒得点击链接,这里是简短的回答:是的,D 有 with statement ,它的行为完全符合您的要求

关于d - D语言中的"With" block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136403/

相关文章:

command-line - 为什么不编译其他模块?

vb.net - 从 VB.NET With block 退出

python - 如何在不关闭资源的情况下留下 `with` block ?

python - Python : generator didn't yield error 中的自定义 'with open()' 语句

reference - D 中的赋值操作会复制对象吗?

signals - 如何处理或检测 D 中的系统信号?

Python 守护线程和 "with"语句

javascript - With 语句的性能影响

iterator - D 的类似 Boost.Filesystem 的库

dll - D DLL 可以在 SAS 中工作吗?