powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Интересно сравнить TypeScript с Kotlin на небольших реальных примерах
5 сообщений из 5, страница 1 из 1
Интересно сравнить TypeScript с Kotlin на небольших реальных примерах
    #39796739
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно сравнить TypeScript с Kotlin на небольших реальных примерах. Хотелось бы собрать пару тройку таких сравнений, на тайпскрипте и котлине.
Кто знает Котлин, напишите плиз.

Например - обработчик событий, (реальный пример - это может быть в интерфейсе что-то типа реакт-редукса, или в базе данных евент сорсинг, обработка сообщений и т.п.) каждое событие - это обьект. Обработчик - принимает на вход событие, делает что-то полезное.
Форма реализации свободная, в ТайпСкрипте это свитч, но может в Котлине есть что-то другое тож норм. Главное чтобы сохранялась типобезопасность и проверялись типы событий, что мы не забыли никакое событие обработать и т.п.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
interface CreatePost {
  type: 'create post'
  text: string
}

interface DeletePost {
  type: 'delete post'
  id:   string
}

// Юнион тип
type Command = CreatePost | DeletePost

const execute = (command: Command): boolean => {
  // Свитч, который заставит обработать все команды, и покажет ошибку 
  // если мы пропустим какую-то команду, или попробуем поставить неправильный тип команды.
  switch (command.type) {

    // Проверка значения, если будет опечатка покажет ошибку
    case 'create post':

      // Автокастинг, язык знает что в данной ветке свитча это не 
      // базовый тип команды, а CreatePost
      console.log(command.text) // Autocasting
      return true

    case 'delete post':
      console.log(command.id)
      return true
  }
}

const commands: Command[] = [
  { type: 'create post', text: 'Zerg on Tarsonis!' },
  { type: 'delete post', id: '1' }
]

commands.forEach(execute)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Интересно сравнить TypeScript с Kotlin на небольших реальных примерах
    #39989672
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Котлине тоже неплохо.

Вопрос, почему не получается `commands.map(execute)` вместо `commands.map { execute(it) }`?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
sealed class Command

class CreatePost(
  val text: String
) : Command()

class DeletePost(
  val id: Int
) : Command()


fun execute(command: Command): Boolean = when (command) {
  is CreatePost -> {
    println(command.text)
    true
  }

  is DeletePost -> {
    println(command.id)
    true
  }
}

val commands = listOf(
  CreatePost(text = "Zerg on Tarsonis!"),
  DeletePost(id = 1)
)

fun main() {
  commands.map { execute(it) }  
}
...
Рейтинг: 0 / 0
Интересно сравнить TypeScript с Kotlin на небольших реальных примерах
    #39989881
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private,

А если так попробовать:
Код: java
1.
commands.map(::execute)


?
...
Рейтинг: 0 / 0
Интересно сравнить TypeScript с Kotlin на небольших реальных примерах
    #39989886
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает спасибо, хмм, я пробовал так но у меня что-то не заработало, может ИДЕА почему-то не успела подсветить или опечатку где-то поставил.
...
Рейтинг: 0 / 0
Интересно сравнить TypeScript с Kotlin на небольших реальных примерах
    #39989890
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последние пару недель сделал небольшой проект на Kotlin, до этого работал с TypeScript, могу сравнить теперь.

Kotlin лучше.

Я напишу его незначительные недостатки по сравнению с TypeScript потому что достоинств слишком много чтобы все писать

1 Жаль что нет literal types - они лучше, проще и универсальней чем sealed class

2 Нотаций для создания коллекций, это ограничиваеть созание структур данных

3 Универсальных типо-безопасных деструкторов и конструкторов структур даннх

let { a, b } = obj, let [a, b] = list, let l = [...а, ...b], let o = { ...a, ...b }


Еще проблема Котлина - много проектов на Котлине сделаны в классической жава-лапше где километры ненужного перегруженного и запутанного кода.

Ну и Gradle / Maven - жуткие убожества из мира Java также используются и в Котлин.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Интересно сравнить TypeScript с Kotlin на небольших реальных примерах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]