Julia per impostazione predefinita importa molti nomi in ambito. C'è un modo per ottenere un avviso quando inavvertitamente sovrascrivo uno di loro?Ricevi un avviso quando sovrascrivo una funzione in Julia?
risposta
Nel contesto dei moduli e delle funzioni di base, Julia avvisa già se si sovrascrive un nome. Vedi gli esempi seguenti che lavorano su v 0.4.5
:
MODULI:
In modA.jl:
module modA
export test
function test()
println("modA")
end
end
In modB.jl:
module modB
export test
function test()
println("modB")
end
end
In REPL:
julia> using modA
julia> using modB
WARNING: Using modB.test in module Main conflicts with an existing identifier
julia> test()
"modA"
FUNZIONI BASE:
In REPL:
julia> function +(x::Float64, y::Float64)
println("my addition")
end
julia> WARNING: module Main should explicitly import + from Base
WARNING: Method definition +(Float64, Float64) in module Base at float.jl:208
overwritten in module Main at none:2.
Per quanto ne so, questo non funziona con funzioni definite dall'utente; vedi sotto:
julia> function test(x::Float64, y::Float64)
println("First Definition")
end
julia> test(1.0, 2.0)
First Definition
julia> function test(x::Float64, y::Float64)
println("Second Definition")
end
julia> test(1.0, 2.0)
Second Definition
Hai in mente un contesto diverso per i nomi importati?
Se faccio, ad esempio, 'readdlm (x) = x^2' nel REPL, non fornisce alcun avviso (v0.4.2), nonostante il fatto che questo sovrascriva' readdlm'. – becko
Questo genera un errore in v0.4.5 'ERRORE: errore nella definizione del metodo: la funzione DataFmt.readdlm deve essere importata esplicitamente per essere estesa'. Questa funzionalità potrebbe essere stata/aggiunta migliorata dal 0.4.2. –
Devo solo aspettare che Julia 0.4.5 arrivi su Ubuntu ppa. – becko
- 1. Objective C - Ricevi un avviso quando un metodo viene chiamato
- 2. Devo specificare di nuovo 'virtuale' quando sovrascrivo una funzione C++?
- 3. firme funzione in julia
- 4. Funzioni all'interno di una funzione in Julia
- 5. Ricevi email in TFS quando ho una nuova attività
- 6. Passando array bidimensionale a una funzione in julia
- 7. Julia: Costruttore Incorporamento di una funzione all'interno di un tipo
- 8. Ricevi notifiche quando DTE.ActiveDocument cambia
- 9. Julia: come posso convertire un'espressione simbolica in una funzione?
- 10. quando la vettorizzazione è favorita in Julia?
- 11. Come applicare la funzione elementwise in Julia?
- 12. funzione Julia argomento per riferimento
- 13. Julia funzione plot gamma emette
- 14. Funzione tabella R in Julia (per DataFrames)
- 15. Come si formatta una stringa quando interpolata in Julia?
- 16. Ricevi una notifica quando elemento aggiunto/rimosso nell'array
- 17. Chiamare una funzione Fortran da Julia, restituendo un array: funzione sconosciuta, segfault?
- 18. Ricevi una notifica quando qualcosa viene aggiunto a NSPasteboard
- 19. Come posso impostare un avviso del compilatore (GNU GCC) quando si sovrascrive una funzione debole
- 20. Come inserisco (non sovrascrivo) un byte in modalità hexl?
- 21. Come passare una funzione per il parametro Tema julia Tafano
- 22. Copia o clona una raccolta in Julia
- 23. Passare argomenti di funzione in Julia in modo non interattivo
- 24. Elimina elemento in un array per julia
- 25. Julia: print_with_color() in terminale
- 26. È possibile ordinare un dizionario in Julia?
- 27. Ricevi notifiche quando l'utente carica su un bucket S3?
- 28. Ricevi un avviso se non è arrivata un'e-mail di rapporto di pianificazione prevista
- 29. Ricevi una richiesta due volte?
- 30. lingua Julia: sub vs funzione fetta
Questo è già stato modificato nella versione di sviluppo (che diventerà julia-0,5) --- ora viene visualizzato un avviso. – tholy
Sì, e mentre cercavo di sbarazzarmi di alcuni degli avvertimenti nei pacchetti che ho utilizzato su Julia v0.5, sono riuscito a trovare e correggere un numero di bug (i bug erano in v0.3 e v0. 4, ma nessuno se ne è accorto fino ad ora), quindi questo è un cambiamento molto gradito nella lingua. –