"用D语言中的块"

Naa*_*Met 2 d with-statement

withD语言的经典块吗?

我正在寻找以下行为:

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.");
Run Code Online (Sandbox Code Playgroud)

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

Dej*_*kic 15

你为什么不查阅D语言参考?只需点击几下,我就找到了http://dlang.org/statement#WithStatement,它可以回答你的问题.如果你懒得关注链接,这里是简短的回答:是的,D有with语句,它的行为完全符合你的要求.