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

October 2025

S M T W T F S
    1 23 4
5 678 9 1011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 12th, 2025 09:06 pm
Powered by Dreamwidth Studios