juan_gandhi: (Default)
[personal profile] juan_gandhi
Как вообще определить какой-нибудь, скажем, <code>interface Magma<T></code>, с единственной операцией, чтобы можно было расширять классы, делая их магмами. Те же Int, String, List, все такое. И чтобы можно было вообще писать <code>fun something<T : Magma>(T a, T b) {...}</code>

Пробовал и так и сяк. Что-то не получается, чтобы элементарно. Понятно, что я Котлин еще не усвоил. Но вообще богатый язык. Богатый.

Date: 2021-02-21 10:22 pm (UTC)
From: [personal profile] chabapok
Можно написать на жава код, скопипастить в .kt и идеа сама переведет его в котлин и вы увидите как оно пишется.

Date: 2021-02-21 10:36 pm (UTC)
thedeemon: (Default)
From: [personal profile] thedeemon
А на джаве можно добавить интерфейсов String'у и Int'у?

Date: 2021-02-21 10:57 pm (UTC)
From: [personal profile] chabapok
нет.
dememax: (сонливость)
From: [personal profile] dememax
А разве исходный вопрос так стоял?
По-моему, там про изменения других классов...
lomeo: (Default)
From: [personal profile] lomeo
Да, только Arrows, но и они кривня.

Date: 2021-02-22 07:12 am (UTC)
From: [personal profile] malacasa
Никак, им такое не завезли. Пишут просто ad-hoc-расширения и готово.

Date: 2021-02-22 11:33 am (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split

Это типичный type class, Котлин их вроде напрямую не поддерживает, но есть Arrow-kt https://arrow-kt.io/

https://arrow-kt.io/docs/arrow/typeclasses/semigroup/

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

September 2025

S M T W T F S
 1 2345 6
78 910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 10th, 2025 04:11 am
Powered by Dreamwidth Studios