написание приложений nodejs в котлине с интеллигентной идеей

Вы на правильном пути. std::sort будет использовать operator< в качестве функции сравнения по умолчанию. Поэтому для сортировки ваших объектов вам придется либо перегрузить bool operator<( const T&, const T& ), либо предоставить функтор, который выполняет сравнение, например:

 struct C {
    int i;
    static bool before( const C& c1, const C& c2 ) { return c1.i < c2.i; }
 };

 bool operator<( const C& c1, const C& c2 ) { return c1.i > c2.i; }

 std::vector<C> values;

 std::sort( values.begin(), values.end() ); // uses operator<
 std::sort( values.begin(), values.end(), C::before );

. Преимущество использования функтора заключается в том, что вы можете использовать функцию с доступом к частным членам класса.

2
задан steambrew 1 March 2019 в 19:58
поделиться

1 ответ

Я не делал этого в IDEA CE, но теоретически это должно сработать.

Предварительные условия: у вас установлен узел, вы можете выполнять задачи gradle

Это минимальная конфигурация, она всеобъемлющая. Добавьте комментарий, если вам это интересно

Шаг 1:
Создайте новый проект Kotlin / JS (с Gradle) и убедитесь, что ваш файл сборки Gradle выглядит следующим образом

group 'node-example'
version '1.0-SNAPSHOT'

buildscript {
  ext.kotlin_version = '1.3.11'
    repositories {
      mavenCentral()
    }
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  }
}

apply plugin: 'kotlin2js'

repositories {
  mavenCentral()
}

dependencies {
  compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
}

compileKotlin2Js.kotlinOptions {
  moduleKind = "commonjs"
  outputFile = "node/index.js"
}

task npmInit(type: Exec) {
  commandLine "npm", "init", "-y"
}

task npmInstall(type: Exec) {
  commandLine "npm", "install", "kotlin", "express", "--save"
}

task npmRun(type: Exec) {
  commandLine "node", "node/index.js"
}

npmRun.dependsOn(build)

Шаг 2:
После синхронизации build.gradle в шаге 1 запустите задачи gradle npmInit и npmInstall

./gradlew :npmInit
./graldew :npmInstall

Шаг 3:
Создайте свой файл kotlin (index.kt / main.kt / whatever.kt) в src/main/kotlin и протестируйте приведенный ниже код

external fun require(module:String):dynamic

fun main(args: Array<String>) {
    println("Hello JavaScript!")

    val express = require("express")
    val app = express()

    app.get("/", { req, res ->
        res.type("text/plain")
        res.send("Kotlin/JS is kool")
    })

    app.listen(3000, {
        println("Listening on port 3000")
    })
}

Шаг 4: RT F A - Запустить приложение
Запустить задачу Gradle npmRun [ 1130]

./gradlew :npmRun

Надеюсь, что это поможет

Примечание:
1. Этот шаблон был взят из среднего поста, который вы спрашивали выше, и немного изменил
2. Не забудьте запускать свои задачи gradle, используя sudo (если вы используете linux)

0
ответ дан andylamax 1 March 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: