Qualcuno potrebbe spiegare la logica, perché in un gruppo di lingue più popolari (vedi nota sotto) gli operatori di confronto (==,! =, <,>, <=,> =) Hanno una priorità maggiore rispetto agli operatori bit a bit (&, |, ^ , ~)? Non credo di aver mai incontrato un uso in cui …
In Java non ci sono virtual, new, overrideparole chiave per definizione di metodo. Quindi il funzionamento di un metodo è facile da capire. Perché se DerivedClass estende BaseClass e ha un metodo con lo stesso nome e la stessa firma del BaseClass poi il primario si svolgerà a run-time il …
Potrebbe essere una domanda strana, ma perché non ci sono implicazioni come operatore logico in molti linguaggi (Java, C, C ++, Python Haskell - anche se come ultimo hanno operatori definiti dall'utente è banale aggiungerlo)? Trovo che le implicazioni logiche siano molto più chiare da scrivere (in particolare in affermazioni …
Perché in quasi tutti i linguaggi di programmazione moderni (Go, Rust, Kotlin, Swift, Scala, Nim, persino Python ultima versione) i tipi seguono sempre il nome della variabile nella dichiarazione della variabile, e non prima? Perché x: int = 42e no int x = 42? Il secondo non è più leggibile …
Quali sono state le decisioni di progettazione che hanno sostenuto il fatto di voidnon essere costruibili e di non essere ammessi come tipo generico? Dopotutto è solo un vuoto speciale structe avrebbe evitato il PITA totale di avere distinti Funce Actiondelegati. (C ++ consente voidrendimenti espliciti e consente voidcome parametro …
sfondo Sto progettando una lingua, come un progetto collaterale. Ho un assemblatore funzionante, un analizzatore statico e una macchina virtuale per questo. Dato che posso già compilare ed eseguire programmi non banali usando l'infrastruttura che ho costruito, ho pensato di fare una presentazione alla mia università. Durante il mio discorso …
Ci sono molte funzioni utili in <algorithm>, ma tutte operano su "sequenze" - coppie di iteratori. Ad esempio, se ho un contenitore e mi piace eseguirlo std::accumulate, devo scrivere: std::vector<int> myContainer = ...; int sum = std::accumulate(myContainer.begin(), myContainer.end(), 0); Quando tutto ciò che intendo fare è: int sum = std::accumulate(myContainer, …
Ecco la sintassi per gli iteratori in Java (sintassi un po 'simile in C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Questo ha senso. Ecco la sintassi equivalente in Python: it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) Pensavo che le eccezioni …
Molti linguaggi moderni offrono funzionalità avanzate di gestione delle eccezioni , ma il linguaggio di programmazione Swift di Apple non fornisce un meccanismo di gestione delle eccezioni . Forte di eccezioni come me, ho problemi a pensare a cosa significhi. Swift ha asserzioni e, naturalmente, valori di ritorno; ma ho …
Ho iniziato a insegnare a un amico a programmare di recente (stiamo usando Python) e quando abbiamo iniziato a discutere della creazione di variabili e dell'operatore di assegnazione, mi ha chiesto perché il valore a destra è assegnato al nome a sinistra e non viceversa . Non ci avevo pensato …
Questa domanda non è: "Perché le persone usano ancora vecchi linguaggi di programmazione?" Lo capisco abbastanza bene. In effetti i due linguaggi di programmazione che conosco meglio sono C e Scheme, entrambi risalenti agli anni '70. Recentemente ho letto delle modifiche in C99 e C11 rispetto a C89 (che sembra …
Durante la programmazione in C #, mi sono imbattuto in una strana decisione di progettazione del linguaggio che non riesco proprio a capire. Quindi, C # (e CLR) ha due tipi di dati aggregati: struct(tipo-valore, archiviato nello stack, nessuna eredità) e class(tipo di riferimento, memorizzato nell'heap, ha ereditarietà). All'inizio questa …
Secondo questo post , non dovremmo mai fare affidamento sul metodo finalize da chiamare. Allora perché Java l'ha incluso nel linguaggio di programmazione? Sembra una decisione terribile includere in qualsiasi linguaggio di programmazione una funzione che potrebbe essere chiamata.
Spesso ci viene detto che all'hardware non importa in quale lingua è scritto un programma poiché vede solo il codice binario compilato, tuttavia questa non è tutta la verità. Ad esempio, considera l'umile Z80; le sue estensioni al set di istruzioni 8080 includono istruzioni come CPIR che è utile per …
Lo stile C # suggerisce di usare CamelCase negli identificatori per delimitare le parole. La tradizione Lisp suggerisce invece di usare trattini. È mai esistito un linguaggio di programmazione in cui l'uso degli spazi negli identificatori non era solo consentito, ma un linguaggio comunemente usato quando si impiegano identificatori a …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.