Di solito riesco a ottenere il comportamento che desidero semplicemente provando a caso diverse permutazioni di queste due opzioni, ma non posso ancora dire di sapere esattamente cosa fanno. C'è un esempio concreto che dimostra la differenza?Qual è la differenza tra: Args e: CaptureArgs in Catalyst?
10
A
risposta
8
:CaptureArgs(N)
corrispondenze se sono presenti almeno N args. Viene utilizzato per gestori non terminalati.
:Args(N)
corrisponde solo se sono presenti esattamente N args.
Ad esempio,
sub catalog : Chained : CaptureArgs(1) {
my ($self, $c, $arg) = @_;
...
}
sub item : Chained('catalog') : Args(2) {
my ($self, $c, $arg1, $arg2) = @_;
...
}
partite
/catalog/*/item/*/*
5
CaptureArgs
è utilizzato nei metodi concatenati in Catalyst.
Args
indica la fine del metodo concatenato.
Per esempio:
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)
{
}
Sopra metodi concatenati corrispondono /account/org/*/*/edit/*
.
Qui base_end
è il metodo fine chain.To segno di fine d'azione incatenato Args
si è utilizzato used.If CaptureArgs
che significa che la catena è ancora in corso.
Args
viene utilizzato anche in altri metodi di catalizzatore per specificare gli argomenti del metodo.
anche da CPAN Catalyst::DispatchType::Chained:
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.
Problemi correlati
- 1. Qual è la differenza tra (string [] args) e System.Environment.CommandLine?
- 2. Qual è la differenza tra `Object obj (args ...)` e `Object obj {args ...}`?
- 3. qual è la differenza tra [] stringa e ... stringa in golang?
- 4. Qual è la differenza tra BAREWORD e * BAREWORD in Perl?
- 5. Qual è la differenza tra = e: =
- 6. Qual è la differenza tra `##` e `hashCode`?
- 7. Qual è la differenza tra dict() e {}?
- 8. qual è la differenza tra:.! e: r !?
- 9. Qual è la differenza tra Verilog! e ~?
- 10. Qual è la differenza tra ("") e (null)
- 11. Qual è la differenza tra? : e ||
- 12. qual è la differenza tra [[], []] e [[]] * 2
- 13. Qual è la differenza tra $ e $$?
- 14. Qual è la differenza tra " " e ""?
- 15. Qual è la differenza tra {0} e ""?
- 16. Qual è la differenza tra {0} e +?
- 17. Qual è la differenza tra .ToString() e + ""
- 18. Qual è la differenza tra! = E =! in Java?
- 19. Qual è la differenza tra HttpRuntime.Cache e Session?
- 20. Qual è la differenza tra spark-submit e pyspark?
- 21. Qual è la differenza tra "in fp" e "in fp.readlines()"?
- 22. C'è qualche differenza tra String ... args e String [] args in Java?
- 23. Qual è la differenza tra "Thread.currentThread(). GetName" e "this.getName"?
- 24. Qual è la differenza tra Metodi e Attributi in Ruby?
- 25. qual è la differenza tra @ id/e @ + id/in android?
- 26. Qual è la differenza tra 'e "in? JavaScript
- 27. Qual è la differenza tra booleano e booleano in Java?
- 28. Qual è la differenza tra target e currenttarget in flex?
- 29. In .NET, qual è la differenza tra AsFoo() e ToFoo()?
- 30. Qual è la differenza tra reindirizzamento e inoltro in Symfony?
che cancella in su bene, grazie. – friedo