Ссылочный оператор метода Java (двойное двоеточие) эквивалентен в машинописи - PullRequest
0 голосов
/ 17 мая 2019

Что является эквивалентом оператора двойного двоеточия Java в машинописи (если есть):

stream.forEach( System.out::println(s));

РЕДАКТИРОВАТЬ: я знаю, что это возможно с определенными функциями, такими как:

stream.forEach(console.log);
stream.filter(Boolean);

Нокогда я использую другие функции, например BehaviorSubject «next», мой код ломается.Я не знаю, что дает право этим двум другим называться по ссылке.Я хотел бы иметь что-то вроде:

stream.pipe(someSubject.next);

Вместо:

stream.pipe(value => someSubject.next(value));

1 Ответ

0 голосов
/ 17 мая 2019

Хорошо, я немного поискал, и в JScript есть оператор двойного двоеточия, который был реализацией Microsoft JavaScript:

двойное двоеточие используется в качестве разделителя между идентификатором сценария иимя события

Я предполагаю, что это не часть (или больше не часть) реализации ECMAScript Internet Explorer, но она принадлежит (или использовалась для принадлежности) реализации Microsoft Office

Что '::' (двойное двоеточие) делает в javascript для событий?

Что было действительно здорово, но я никогда не видел оператора с двойным двоеточием, используемого в TS или ECMAScript.Вы можете использовать лямбда-выражения [].forEach((item: any) => console.log(item))

, но я почти уверен, что JS или TS не имеют оболочки для лямбда-выражения, как в Java.

РЕДАКТИРОВАТЬ: Я также нашел это Что делает «::» (двойное двоеточие) в JavaScript? после небольшого поиска, и он также является действительным оператором ES7 в качестве синтаксического сахара для связывания: http://blog.jeremyfairbank.com/javascript/javascript-es7-function-bind-syntax/

Хотя это нене работают так же, как оператор Java в.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...