English 中文(简体)
某些 D 属性上的“ @” 前缀是什么意思?
原标题:What is the meaning of the "@" prefix on some D attributes?
  • 时间:2012-05-24 04:21:44
  •  标签:
  • syntax
  • d

D 编程语言至少有两个属性前缀为“ @” 符号:

  • @disable
  • @property

“@”应该表达什么含义?我似乎找不到文件中任何相关内容。

还有,为什么是唯一有两个前缀的属性?

最佳回答

它没有任何意义。

是的,这也许不是你想听到的 -- 但是他们已经在新闻组里说过了。

问题回答

在这一点上并不真正意味着任何。 所有 单词都是功能属性。 基本上只是为了保存关键字。 因此,一般来说,较新的属性在它们上面有 , 旧的属性没有(虽然在那个时候,有些东西在周围摇摆着,有些时候曾经争论过某些属性是否应该有 。 如果它们从头到尾都是重新编辑的,而没有注意其他语言已经做了什么,那么你可能在所有功能属性上都得到了 ,但是没有办法让像 这样的东西发生,因为这样只会使移植代码更难做到没有真正的好处。最终的结果是,有些东西得到了,有些东西没有相当武断。你只需要记住,哪些属性是从 开始,而没有注意其他语言,但是没有,从这些代码实际上不是全部的代码。

现在,在D社区中,许多人确实希望将来对自定义属性使用,在这种情况下,将表示在所使用名称并非语言中包含的一个名称的情况下,习惯属性,但对于语言中包含的所有名称来说,这几乎等于保存关键字。

Mehrdad 指出(见评论中的链接), “@”没有特别的意义,

至于你的另一个问题, 不是唯一有两个下划线的关键词, 还有 。 此命名公约通常用于表示内部数据结构, 这些数据结构出于实际原因需要曝光, 但并非“ 安全”, 在所有情况下都可以使用( 也就是说, 黑客比早已确立的特性更安全 ) 。 我不确定 D 语言是否遵循了这项公约, 但是看到 < a href=" http://dlang.org/ atribitte.html#g shared" rel=“ nofollow” 。

g 分摊在安全方式中不允许。

我在找更多关于 (它们其实不是属性) 的信息,但到目前为止可以找到的很少。





相关问题
How to change out-of-focus text selection color in Xcode?

Okay, I ll bite. I ve got really pleasant code/window colors set up in Xcode. Ordinarily, my selection color is very visible. When I am doing a project search and iterating through the results, ...

pdo database abstraction

Can someone help me to see what is going wrong with this setup I build the @sql query in the function below like this. The extra quotes are setup in the conditions array. $sql .= " WHERE $...

I wish I could correlate an "inline view"

I have a Patient table: PatientId Admitted --------- --------------- 1 d/m/yy hh:mm:ss 2 d/m/yy hh:mm:ss 3 d/m/yy hh:mm:ss I have a PatientMeasurement table (0 to ...

Syntax help! Php and MYSQL

Original: $sql = "SELECT DATE(TimeAdded) AS Date, $column_name FROM Codes ORDER BY TimeAdded ASC"; Altered: $sql = "SELECT DATE("m", TimeAdded ) AS Date, ColumnName FROM TableName ORDER BY ...

Is this code Equivalent

I am not a fan of the following construction if (self = [super init]) { //do something with self assuming it has been created } Is the following equivalent? self = [super init]; if (self != ...