juan_gandhi: (VP)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2015-03-05 08:43 pm
Entry tags:

scala hacker writes javascript...

s0.toUpperCase().contains(s1.toUpperCase)


guess what will happen

[identity profile] mixa-menshenin.livejournal.com 2015-03-06 05:12 am (UTC)(link)
js будет в строке искать функцию?

Если все идентификаторы распарсятся, то js это легко проглотит. А совпадений никогда не будет.

[identity profile] juan-gandhi.livejournal.com 2015-03-06 05:57 am (UTC)(link)
Проглотит это точно.
Вот такая хрень.

[identity profile] victorgr.livejournal.com 2015-03-06 07:42 am (UTC)(link)
А разве здесь есть что-то нелогичное?

Вместо результата выполнения функции s1.toUpperCase, передаём сам объект функции.

А как подобное обработается в скале?

[identity profile] sassa-nf.livejournal.com 2015-03-06 07:48 am (UTC)(link)
не компилируется

[identity profile] victorgr.livejournal.com 2015-03-06 07:53 am (UTC)(link)
А, ну наверняка потому что .contains ожидает тип string, а получает на вход тип function?

[identity profile] sassa-nf.livejournal.com 2015-03-06 08:01 am (UTC)(link)
угу

[identity profile] triampurum.livejournal.com 2015-03-09 06:50 pm (UTC)(link)
там второй .toUpperCase будет вызван как метод с нулем аргументов, в contains попадет строка, будет Boolean на выходе. Другими словами, в scala вызовы метод со скобочками и без скобочек в этом вот случае эквивалентны с т.з. компилятора.

[identity profile] microcell.livejournal.com 2015-03-06 06:16 am (UTC)(link)
scala is evel.

Мне тут на днях одна функция вернула Some<String> вместо ожидаемой строки, было прикольно наблюдать за результатом toString()
Edited 2015-03-06 06:17 (UTC)

[identity profile] juan-gandhi.livejournal.com 2015-03-06 06:44 am (UTC)(link)
У меня более смешная комбинация - Good.toString() сообщает, что оно Good, а Bad.toString() просто перечисляет дефекты. И когда у меня несплющенное Good(Bad("fuck you")), то хрен поймешь, шо это было.