Каков хороший вариант использования для вставки функции Kotlin? - PullRequest
0 голосов
/ 06 марта 2020

Я недавно узнал о Kotlin встроенных функциях. Я думал, что приведенная ниже функция, twipsToPixels, кажется хорошим вариантом для этого, но IntelliJ предупреждает меня, что есть «ожидаемое влияние на производительность». Я бы подумал, что здесь будет наоборот? Это заставляет меня думать, что я пропускаю что-то более глубокое. У кого-нибудь есть мысли?

private inline fun twipsToPixels(value: Int) = (value * SCREEN_RESOLUTION / TWIPS_CONVERSION).roundToInt()

private fun screenBoxInPixels(screenBox: ScreenBox): ScreenBox {
  val left = twipsToPixels(screenBox.position.left)
  val top = twipsToPixels(screenBox.position.top)
  val width = twipsToPixels(screenBox.size.width)
  val height = twipsToPixels(screenBox.size.height)
  return ScreenBox(Position(left, top), Size(width, height))
}

1 Ответ

1 голос
/ 06 марта 2020

но IntelliJ предупреждает меня, что есть "ожидаемое влияние на производительность"

Вы неправильно его прочитали; это говорит, что это влияние незначительно, то есть, вероятно, слишком мало, чтобы беспокоить. Вторая часть сообщения:

. Инлайнинг лучше всего подходит для функций с параметрами функциональных типов

, главным образом потому, что он позволяет избежать создания объектов функций для этих параметров. .

...