【问题标题】:Why can't I define a `delete` method?为什么我不能定义一个 `delete` 方法?
【发布时间】:2017-01-01 02:23:41
【问题描述】:

我正在尝试创建一个库,其中包含代表 HTTP 方法的类中的方法,例如 GET、POST 和 DELETE。我正在尝试使用一个为这些 HTTP 方法中的每一个定义方法的抽象类来做到这一点。

当我为这个类定义一个简单的delete 方法时,问题就出现了。这就是所说的方法的样子:

/**
 * A generic responder to a DELETE request.
 */
Response delete(Request request)
{
    return new Response("Method not supported");
}

理论上这应该可以正常工作,但在编译时出现错误,no identifier for declarator Response。

为什么会出现这个错误?删除delete 方法会使程序编译,但其中有一个方法使其根本无法编译。

任何帮助将不胜感激,谢谢!

【问题讨论】:

  • 是什么语言?
  • @xenteros 语言在标签中:它是 D
  • delete 已经是关键字。这就像尝试定义一个名为 if 的方法。
  • @user2357112,这是有道理的,但有没有办法轻松解决这个问题?我更愿意使用 delete 方法名称,因为它直接对应于我要传达的内容,并且可以使我的 API 保持一致。
  • delete 是 D 中的保留关键字。目前无法直接绕过它。根据您的实现,您可以使用 UDA 将函数标记为删除函数。

标签: class methods d


【解决方案1】:

通常的做法是在关键字后面加上下划线,以便能够将它们用作变量名。请参阅https://dlang.org/dstyle.html - 关键字

【讨论】:

  • 我唯一的问题是人们必须覆盖 delete_,与其他 HTTP 方法相比,这看起来很奇怪。不过,看到delete 是如何保留的,我必须走那条路。感谢您的帮助!接受。
猜你喜欢
  • 2022-10-07
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 2010-09-26
  • 2011-03-08
  • 2017-01-11
  • 1970-01-01
相关资源
最近更新 更多