我通常可以通過隨機嘗試這兩個選項的不同排列來獲得我想要的行爲,但我仍然不能說我確切知道他們做了什麼。有沒有一個具體的例子來證明它們的區別?Catalyst:中的參數和:CaptureArgs之間有什麼區別?
10
A
回答
8
:CaptureArgs(N)
如果剩下至少N個參數則匹配。它用於非終端鏈式處理程序。
:Args(N)
只有匹配時,如果剩下N個參數。
例如,
sub catalog : Chained : CaptureArgs(1) {
my ($self, $c, $arg) = @_;
...
}
sub item : Chained('catalog') : Args(2) {
my ($self, $c, $arg1, $arg2) = @_;
...
}
匹配
/catalog/*/item/*/*
5
CaptureArgs
在催化劑鏈式方法中使用。
Args
標誌着鏈式方法的結束。
對於前:
sub base_method : Chained('/') :PathPart("account") :CaptureArgs(0)
{
}
sub after_base : Chained('base_method') :PathPart("org") :CaptureArgs(2)
{
}
sub base_end : Chained('after_base') :PathPart("edit") :Args(1)
{
}
以上鍊接的方式匹配/account/org/*/*/edit/*
。
這裏base_end
是chain的結束方法。要標記鏈接操作的結尾Args
被使用。如果使用CaptureArgs
意味着鏈仍在繼續。
Args
也用於催化劑的其他方法,用於說明方法的論據。
另外:
The endpoint of the chain specifies how many arguments it
gets through the Args attribute. :Args(0) would be none at all,
:Args without an integer would be unlimited. The path parts that
aren't endpoints are using CaptureArgs to specify how many parameters
they expect to receive.
相關問題
- 1. 中有什麼函數參數和參數之間......區別
- 2. 只有一個參數時,$ @和$ 1之間有什麼區別?
- 3. C++中的no參數和void參數之間有什麼區別?
- 4. 函數中直接參數和全局參數之間有什麼區別?
- 5. 參數和參數之間的區別
- 6. {參數}和參數之間的區別?
- 7. 短弱參考和長弱參考之間有什麼區別?
- 8. 「層」和「層」之間有什麼區別?
- 9. Tableau和QlikView之間有什麼區別
- 10. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 11. @Entity和@embeddable之間有什麼區別
- 12. ContentObservable和DataSetObservable之間有什麼區別?
- 13. touchmove和gesturechange之間有什麼區別?
- 14. :notification.flags和notification.defaults之間有什麼區別?
- 15. proc和lambda之間有什麼區別?
- 16. :: after和after之間有什麼區別?
- 17. read()和io.read()之間有什麼區別?
- 18. Request()和Request.Form()之間有什麼區別?
- 19. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 20. getA()和this.getA()之間有什麼區別?
- 21. (int)和intval()之間有什麼區別?
- 22. set_value和= pandas之間有什麼區別
- 23. * zoom和zoom之間有什麼區別?
- 24. {0}和「」之間有什麼區別?
- 25. typedef和using之間有什麼區別?
- 26. 「」和「'之間有什麼區別?
- 27. STDIN和tty之間有什麼區別?
- 28. +和%之間有什麼區別?
- 29. sysfs_create_file()和sysfs_create_group()之間有什麼區別?
- 30. Lazy.Force()和Lazy.Value之間有什麼區別
即清除它很好,謝謝。 – friedo