Typowanie słabe: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
KrzysiekS (dyskusja | edycje)
Rozbudowa tekstu. Pytanie: czy podany przykład dotyczy języka C? Bo w kompilatorze gcc nie daje efektu, a który chodzi autorowi. Może jest to PHP - ale to trzeba napisać.
m istotnie, przykład powinien być konkretny i na pewno nie może to być C.
Linia 3: Linia 3:
Pewną zaletą słabego typowania w porównaniu z silnym typowaniem jest to, że wymaga ono mniejszego nakładu pracy programisty, ponieważ kompilator lub interpreter niejawnie wykonuje pewne konwersje. Jednakże, wadą może być to, że systemy ze słabym typowaniem wychwytują mniej błędów na etapie kompilacji i błędy te mogą pozostać niewykryte nawet po zakończeniu testowania. Na przykład w języku [[PHP]] łańcuchy "1000" i "1e3" dają przy porównaniu równość, ponieważ są niejawnie konwertowane do liczb zmiennopozycyjnych - mimo, że jako łańcuchy znaków są różne.
Pewną zaletą słabego typowania w porównaniu z silnym typowaniem jest to, że wymaga ono mniejszego nakładu pracy programisty, ponieważ kompilator lub interpreter niejawnie wykonuje pewne konwersje. Jednakże, wadą może być to, że systemy ze słabym typowaniem wychwytują mniej błędów na etapie kompilacji i błędy te mogą pozostać niewykryte nawet po zakończeniu testowania. Na przykład w języku [[PHP]] łańcuchy "1000" i "1e3" dają przy porównaniu równość, ponieważ są niejawnie konwertowane do liczb zmiennopozycyjnych - mimo, że jako łańcuchy znaków są różne.


Przykład:
Przykład w języku PHP:
int liczba = 1;
$liczba = 1;
if ('1' == liczba) {
if ('1' == $liczba) {
// mimo porównywania z tekstem, warunek jest prawdziwy, ponieważ liczba jest rzutowana na typ string
// mimo porównywania z tekstem, warunek jest prawdziwy, ponieważ liczba jest rzutowana na typ string
}
}

Wersja z 13:40, 30 mar 2013

Typowanie słabesystem typów, w którym typ wyrażenia może być automatycznie zmieniony, jeśli kontekst tego wymaga. Oznacza to m.in. automatyczne konwersje pomiędzy niektórymi typami.

Pewną zaletą słabego typowania w porównaniu z silnym typowaniem jest to, że wymaga ono mniejszego nakładu pracy programisty, ponieważ kompilator lub interpreter niejawnie wykonuje pewne konwersje. Jednakże, wadą może być to, że systemy ze słabym typowaniem wychwytują mniej błędów na etapie kompilacji i błędy te mogą pozostać niewykryte nawet po zakończeniu testowania. Na przykład w języku PHP łańcuchy "1000" i "1e3" dają przy porównaniu równość, ponieważ są niejawnie konwertowane do liczb zmiennopozycyjnych - mimo, że jako łańcuchy znaków są różne.

Przykład w języku PHP:

 $liczba = 1;
 if ('1' == $liczba) {
   // mimo porównywania z tekstem, warunek jest prawdziwy, ponieważ liczba jest rzutowana na typ string
 }

Zobacz też