Тема: Чому в Python і в PHP ів JavaScript немає блочних змінних?
Це ж так зручно.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Обговорення → Чому в Python і в PHP ів JavaScript немає блочних змінних?
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Це ж так зручно.
Що це взагалі за "блочні змінні"? Де вони використовуються?
Якусь фігню зморозив. Не звертайте увагу.
Не зовсім фігню. Я мав на увазі те що в C++ можна оголосити змінну в області ініціалізації циклу for і така змінна буде доступна тільки всередині оператора циклу. Приклад:
#include <iostream>
int main() {
for (int i = 0; i< 4;i++)
std::cout<<i;
std::cout<<i;
return 0;
}
При спробі скомпілювати цю програму я отримую наступну помилку:
$g++ -fpermissive f.cpp
f.cpp: In function ‘int main()’:
f.cpp:7:16: warning: name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]
std::cout<<i;
^
f.cpp:5:14: warning: using obsolete binding at ‘i’ [-fpermissive]
for (int i = 0; i< 4;i++)
Але якщо прибрати рядок std::cout<<i;, то все запрацює бо була спроба звернутися до неіснуючої змінної (наскільки я розумію).
for x in range(1,10):
print x
oO
dr_2013
Ну тоді взагалі не зрозуміло, як Python, JS так і PHP не потребують явного об_явлення змінних, т.є. динамічна типізація цих мов знімає з програміста це. На відміну від C/C++, в якій типізація статична.
dr_2013
Стосовно JavaScript - то ви мабуть читаєте російські книжки десь 2005 року випуску, тому і не знаєте про let
var a = 5;
var b = 10;
if (a === 5) {
let a = 4; // The scope is inside the if-block
var b = 1; // The scope is inside the function
console.log(a); // 4
console.log(b); // 1
}
console.log(a); // 5
console.log(b); // 1
Російські не читаю. Перекладені теж. З роком майже вгадали.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися