C'è qualche differenza tra fareRubino Modulo Dichiarazione
class Bus::Driver
end
e
module Bus
class Driver
end
end
In caso contrario, che la sintassi è preferito?
C'è qualche differenza tra fareRubino Modulo Dichiarazione
class Bus::Driver
end
e
module Bus
class Driver
end
end
In caso contrario, che la sintassi è preferito?
C'è qualche differenza tra fare [...]?
L'unica differenza è che in class Bus::Driver
il Bus
modulo must essere già definito, mentre lo stesso non si distinguono per il secondo.
Quale sintassi è preferibile?
Questa non è una domanda costruttivo, ma io personalmente preferisco il secondo perché afferma esplicitamente che Bus
è un modulo, mentre con la prima non riesco a vedere, a prima vista, se Bus
è un modulo o di una classe.
Questo, di per sé:
class Bus::Driver
end
si tradurrà in un errore NameError: uninitialized constant Bus
Così ad un certo punto si deve dichiarare class Bus
o module Bus
. Tuttavia, non deve essere la gerarchia completa ogni volta.
Tendo ad avere presto bisogno di impostare gli spazi dei nomi, quindi utilizzare il modulo più condensato nel resto dei miei file. Non sono a conoscenza del fatto che esista un approccio preferito, sicuramente niente per cui verrebbe criticato.
La prima sintassi è preferibile quando si hanno diverse classi di un modulo distribuite su più file in un progetto; e fornito module
è sempre definito in PATH
. Ad esempio, mentre si effettua un gem
.
Il secondo è più centrale e deve essere eseguito quando i dettagli sono interessati. module
non include solo class
, include methods
e constants
ecc. Anche per il namespace; che sono utili