Jakeryf пишет:мне просто интересно
Бога ради, если это такая интересная для тебя тема, могу написать. На JavaScript:
CODE:function getArray()
{
return new Array("Полезная информация", "Всякая чушь");
}
data=getArray()[0];
Работает совершенно спокойно. На C++ подобный (говорю сразу: не тождественный!) код выглядит чуточку посложнее:
CODE:#include <iostream>
char** getArray();
void main()
{
std::cout << getArray()[0];
}
char** getArray()
{
char **array=new char*[2];
array[0]="Useful information";
array[1]="Some empty words...";
return array;
}
Только не надо говорить, что возвращаю я не массив, а указатель на него - вернуть локальный массив мне никто не позволит, а возвращать глобальный неинтересно.
Если тебе действительно интересно, могу привести чуть более сложный пример на JavaScript:
CODE:function getArray()
{
return new Array(a, b);
}
function a()
{
return new Array(c, d);
}
function b()
{
return new Array(e, f);
}
function c()
{
return new Array('Раз!', 'Два!');
}
function d()
{
return new Array('Три!', 'Четыре!');
}
function e()
{
return new Array('Пять!', 'Шесть!');
}
function f()
{
return new Array('Семь!', 'Восемь!');
}
data=getArray()[0]()[1]()[0];
Пример, опять же, дутый, но, как мне кажется, познавательный. На C++ писать то же самое не хочу - слишком длинное получится сообщение.
Jakeryf пишет:это немного не то что ты написал
Согласен с точностью до терминологии - действительно,
CODE:document.getElementsByTagName('h1') instanceof Array
выдаёт false, так как возвращаемое этим методом значение будет относиться не к типу массива, а к типу коллекции. Можно долго спорить об отношениях между этими двумя типами, но я бы не хотел начинать здесь эту дискуссию.

Jakeryf пишет:По подобию С++ является язык Java, но назвать JavaScript назвать Cи подобным можно с трудом.
Зы РНР тоже является Си подобным языком.
Опять же, я был бы внимательнее к терминологии. Синтаксис в C, C++ и JavaScript один (почти). Да и PHP, в принципе, мало что добавил, хотя не признать некоторые отличия нельзя. Но по концепции как C, так и PHP являются функционально-ориентированными (ибо даже в версии PHP5 объектная модель, насколько мне известно, остаётся достаточно сырой), в то время как C++ (в большей мере, конечно, C#) и JavaScript уже относятся к классу объектно-ориентированных (JavaScript, конечно, правильнее назвать основанным на объектах, т. к. пользовательских определений классов на данном этапе в нём нет) и имеют во многом схожую идеологию. То есть, как мне кажется, PHP стоит всё же ближе к C, чем к C++, а с JavaScript ситуация обратная. Про Java ничего сказать не могу, так как сам его не изучал - нехай себе C++ -подобный.
И всё же, возвращаясь к основной мысли данной темы: теперь, когда скептики наконец увидят (я надеюсь), что сходные конструкции присутствуют во многих языках, быть может, кто-нибудь мне скажет,
почему PHP меня за них ругает? Является ли это следствием другой идеологической основы этого языка, простой недоработкой в интерпретаторе или всё же следствием моего недопонимания чего-то? Если истина третья из причин, то что именно мне следует понять?