Да тыжпрограммист. Слушай у меня тут утюг не работает, может поможешь, а ?
А ты пробовал его выключить и включить?
Там, кроч, биос надо шить. 5 тыщ, чисто по соседски.
выйти и снова войти...
Parameters
Пива мне.
там не "raP"
Nope. Для пива надо сказать:
"Beer.Secret word: parameters"
Лучше так:
int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int i=0;
int secret = array[i++ + ++i] + i++ + ++i;
std::cout
гребаный реахтур обрезал
Кароче, там дальше вывод этого числа.
Кодовое слово Undefined Behaviour?
Ага :)
А почему? из-за порядка вычисления?
Да. От компилятора зависит, какой из ++i он посчитает первым и вообще в каком порядке будет считать.
8
Undefined parameters же
А точнее undefined.Secret word: parameters
Секретный код для тех, кого душит жаба.
*жабаскрипт
Все любят скриптожабу!
false.
Потому что остальные любят Дядю Юру
А если в your_drink передать не строку, всё свалится с экспепшеном. И this будет ссылкой на контекст исполнения (скорее всего window), а не на объект. Какой-то не очень и бармена программист.
А чего так просто то?
Давайте ещё интерфейс IBartender реализуем, перегрузим toString(), equals();
static - не кошерно. Залепим singleton)
И фабирку фабрик фабрик сигнлтонов барменов.
з.ы. да, я знаю - мой пример абсурден. Хотя, с другой стороны - если есть есть множество реализующих IBartender классов, каждый из которых - синглтон... Но всё равно абсурд.
Чувак, бармен больше шарит, чем ты! :)
У нас создается экземпляр класса Object (bartender) с полями str1, str2, str3, и методом request. Как мы обращаемся к полям объекта в методе объекта? Правильно, через this!
А у тебя вообще поля static. Не знаю, что это у тебя за варварский язык программирования, но через this к статикам больше нигде нельзя обращаться.
Это JS, так же как и у бармена.
> Как мы обращаемся к полям объекта в методе объекта? Правильно, через this!
Писал долгую тираду, почему я прав, потом понял, что мне лень было писать function и я использовал стрелочные функции, а они не сохраняют контекст вызова. Поэтому второй пункт снимается :) отсутствие проверки входных данных остаётся.
> А у тебя вообще поля static. Не знаю, что это у тебя за варварский язык программирования, но через this к статикам больше нигде нельзя обращаться.
Попробуй скопипастить.
var foo = class Foo { static bar() { return this; } }
foo.bar();
Получить функцию-класс Foo.
static нужен для того, чтобы можно было обращаться к методам прототипа, не инстанцируя класс (т.е. без var foo = new Foo();). Конкретно в этом примере я присваиваю класс Foo переменной, потому что какой-то баг с областью видимости в браузере.
Ключевое слово get указывает, что это метод-геттер, т.е. к нему можно обращаться, не вызывая как функцию.
Ну не знаю, у меня не компилится: Uncaught SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
Потому что поддержка синтаксиса ещё не полная, увы. Можно либо заменить let/const на var, либо обернуть в функцию (для создания блока видимости), и в ней указать use strict.