Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 什么';这就是@tag和@之间的区别!码内标记文档工具?_Ruby_Documentation_Yard - Fatal编程技术网

Ruby 什么';这就是@tag和@之间的区别!码内标记文档工具?

Ruby 什么';这就是@tag和@之间的区别!码内标记文档工具?,ruby,documentation,yard,Ruby,Documentation,Yard,在查看示例时,我发现一些以感叹号为前缀的标记 我找到了带感叹号和不带感叹号的工作示例,但我无法发现它们之间的区别,所以当@时会发生什么变化呢!使用某个标记来代替某个标记 例如,此代码为attr和attr2生成相同的文档 class Anything # @!attribute [rw] attr # @attribute [rw] attr2 end 另一方面,感叹号的重要性被强调了,所以它应该做些什么,但是我找不到任何关于它用法的文档 @!方法示例 Rails模型中的这两个注释都生成

在查看示例时,我发现一些以感叹号为前缀的标记

我找到了带感叹号和不带感叹号的工作示例,但我无法发现它们之间的区别,所以当
@时会发生什么变化呢!使用某个标记来代替某个标记

例如,此代码为
attr
attr2
生成相同的文档

class Anything
  # @!attribute [rw] attr
  # @attribute [rw] attr2
end
另一方面,感叹号的重要性被强调了,所以它应该做些什么,但是我找不到任何关于它用法的文档

@!方法示例 Rails模型中的这两个注释都生成了新方法

# @!method with_bang(param)
scope :foo_bar, where(foo: 'bar')
# @method without_bang(param)
scope :foo_baz, where(foo: 'baz')
堆场产量:


这个
Yard
中的code>修饰符。例如:

# @!method foo(name, opts = {})
create_a_foo_method

这告诉我们,
create\u a\u foo\u method
将生成一个签名为
def foo(name,ops={})
的方法。您可以将此思路应用于
@!范围
@!可见性
,以及每隔一段的可见性
@!标签。正如在Yard文档中所说的,这对记录DSL很有用。

事实上并非如此,请参阅我的更新问题,并给出
@method
标记的示例。@Fabio这是因为
@method
标记的行为。请注意从Yard文档中提取的这一行:
注意,Yard使用方法调用中的第一个参数来确定方法名称。在某些情况下,这不是方法名,您需要手动声明它。你可以用@来做!方法指令
。尝试对
@return
@param
等标记执行相同的操作。理论上,没有
您是说下面的代码是一个名为
但没有_bang
的方法,并不是说它在类中生成了一个没有_bang的方法。@Fabio请注意,在Yard docs中没有使用
@method
标记的示例。请注意
@方法
@!方法
的工作方式与我的示例中的相同。您发布的注释是关于通用
@方法的用法,而不是关于
用法。顺便说一句,这是gem所有者使用
@方法编写的,没有