LINUX.ORG.RU

Помогите реализовать вызов методов «цепочкой»

 ,


0

2

Приветствую всех :-)

По прочтении книжки Хорстманна наткнулся на предложение читателю реализовать вызов методов в Scala в максимально естественном для человека виде, то есть в виде instance method1 method2 par method3 и т.д.

Я набросал два предварительных варианта, но не могу додуматься как надо переписать код чтобы получить искомую форму вызова.

Собственно сам код: http://paste.ubuntu.com/6246373/, http://paste.ubuntu.com/6246378/

У кого какие есть идеи? Всем спасибо.

Ответ на: комментарий от lispfuerimmer

Да. Именно так. Дабы не писать глупые точки и скобочки.

LongLiveUbuntu ★★★★★
() автор топика

Обычно таким не заморачиваются, скобочки может и можно убрать на уровне одельных методов, но чтобы еще и параметры вместе с методами чередовать, так я не уверен что можно

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

В «Scala for Impatients» в пункте 18.1 есть пример таких вызовов. Пытался делать по образу и подобию, но что-то не клеится.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

this.type конечно хорош, но со скобочками никак не связан. Если полностью писать в рамках одного класса без this.type и заведется, тогда можно уже что-то там городить

vertexua ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Ну тут this.type ясно почему, есть потомки. Но все еще не ясно зачем это.

В продакшн скале важно не использовать крутые фичи, а не использовать крутые фичи если ничего потом не понятно

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от vertexua

Та я себе уже за день голову сломал :-) Хотя может быть и стоит отступить и порешать чего попроще, а там и понимание придет.

Хотя возможность так оформлять код радует.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Это пока еще не продакшен, а скорее just for fun. Хочу получше войти во вкус.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Лучше порешать что-то пополезнее. Future composition, Option composition, коллекции.

И да, попиши API сам. Запили классную работу с CSV, JDBC, HttpClient

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Но вот это меня, конечно, убило

(((((((gutsy move(6))show)move(4))show)turn)move(5))show)

ИЧСХ, работает.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Классные врапперы функциональные, ленивые и сами управляют ресурсами чтобы не случилось

vertexua ★★★★★
()

тыц

gutsy move 6 move 4 show // Метод без аргументов должен быть последним, причём после должна стоять пустая строка.

Считаю использование такого синтаксиса сатанизмом.

anonymous
()
Ответ на: комментарий от anonymous

а если сделать ссылку на класс неявным параметром методов show и turn?

LongLiveUbuntu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.