Solidity 合约 "new" 关键字的语法解释

Syntax explanation for "new" keyword for contracts in Solidity

我正在尝试理解 C c = new C();

的语法

我阅读了 new 关键字部署、初始化状态变量、运行构造函数、将随机数设置为 1,以及 returns 新实例的地址。

我读到状态变量 a 有一个 0 元 public getter 函数 a() returns a 的值].

问题:

  1. 合同的 getter 功能“是”什么?
  2. 为什么new作用于getter函数?
  3. C c = new C();为什么我们需要第一个C来定义变量?

What "is" the getter function of a contract?

Why does new act on the getter function?

您可以通过省略 new 关键字来创建指向已部署合约的指针。请注意,地址 不是 构造函数参数 - 它是外部合约的地址。

// points to a contract already deployed on address 0x123
C c = C(address(0x123));

In C c = new C(); why do we need the first C to define the variable?

Solidity 是一种严格类型化的语言。所以第一个C定义了一个变量类型C.