Search
Write a publication
Pull to refresh
1
0
Send message
Лучше всего, когда своп по размеру равен оперативной памяти.
Иногда так использую:
for(let i = 0; i < n; i++, j++) {
}

И не только в JS.
Действительно, для того, чтобы подставить в уравнение точку R, нам сначала необходимо найти эту самую точку R, которую, в свою очередь, необходимо будет вычислить с помощью кубического уравнения. Автор же приводит более изящный метод проверки результата.
В конкретном случае сложение определяется, как ассоциативная бинарная операция, которая берет какие-либо две точки и выдает третью на их основе. Поправьте меня, если я не прав.
Вижу это:
Meanwhile, the questions is what's better:
  • (the present behavior) we refuse to compile something that intuitively should be compilable;
  • we compile it, but introduce a performance penalty that the user has little chance to be aware of at the time of writing the code.

kotlin.Double тоже не работает.

Но идея выкинуть дженерики из языка хорошая, мне нравится.

А вообще таск открыт.
В первом случае все нормально, а во втором получается compilation error. И проблема в дизайне языка.

interface Foo<T> {
    fun bar(vararg a: T)
}
class NormalDouble: Foo<java.lang.Double> {
    override fun bar(vararg a: java.lang.Double) {
        throw UnsupportedOperationException()
    }

}

class BadDouble: Foo<kotlin.Double> {
    override fun bar(vararg a: kotlin.Double) {
        throw UnsupportedOperationException()
    }
}


Для vararg a: T генерируется Object[] a, и для vararg a: Int это int[] a , что не является переопределением.

Есть один вариант пофиксить это: для bar компилятор будет генерировать Integer[], вместо int[].

Но другая проблема возникает здесь:

val bi = BadInt()
val arr = intArrayOf(1, 2)
bi.bar(*arr) // Здесь проблема


Вообще можно сделать отдельный оператор, который будет боксить каждый элемент массива, но это будет очень медленно. Единственный вариант для решения этой проблемы без изменения дизайна языка — ждать релиза проекта Valhalla.
С массивами не всё так однозначно, на самом деле. Есть большая проблема с vararg'ами.

Information

Rating
Does not participate
Registered
Activity