1

Тема: Чому в Python і в PHP ів JavaScript немає блочних змінних?

Це ж так зручно.

2

Re: Чому в Python і в PHP ів JavaScript немає блочних змінних?

Що це взагалі за "блочні змінні"? Де вони використовуються?

x

3

Re: Чому в Python і в PHP ів JavaScript немає блочних змінних?

Якусь фігню зморозив. Не звертайте увагу.

4

Re: Чому в Python і в PHP ів JavaScript немає блочних змінних?

Не зовсім фігню. Я мав на увазі те що в 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;, то все запрацює бо була спроба звернутися до неіснуючої змінної (наскільки я розумію).

5

Re: Чому в Python і в PHP ів JavaScript немає блочних змінних?

for x in range(1,10):
    print x     

oO

6 Востаннє редагувалося Chemist-i (27.02.2014 06:42:56)

Re: Чому в Python і в PHP ів JavaScript немає блочних змінних?

dr_2013
Ну тоді взагалі не зрозуміло, як Python, JS так і PHP не потребують явного об_явлення змінних, т.є. динамічна типізація цих мов знімає з програміста це. На відміну від C/C++, в якій типізація статична.

x

7 Востаннє редагувалося 0xDADA11C7 (27.02.2014 14:38:16)

Re: Чому в Python і в PHP ів JavaScript немає блочних змінних?

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
Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: koala, dr_2013, funivan, bunyk, ostap34PHP5

8

Re: Чому в Python і в PHP ів JavaScript немає блочних змінних?

Російські не читаю. Перекладені теж. З роком майже вгадали.