Зачем вам использовать константу вместо val в Котлин? [Дубликат]

Чтобы поместить легенду за пределы области графика, используйте слова loc и bbox_to_anchor legend (). Например, следующий код поместит легенду справа от области графика:

legend(loc="upper left", bbox_to_anchor=(1,1))

Для получения дополнительной информации см. Руководство по легенде

119
задан James A Mohler 2 June 2016 в 15:22
поделиться

3 ответа

const s - постоянные времени компиляции. Это означает, что их значение должно быть назначено во время компиляции, в отличие от val s, где это можно сделать во время выполнения.

Это означает, что const s никогда не могут быть назначены функции или любому класс, но только для String или примитива.

Например:

const val foo = complexFunctionCall()   //Not okay
val fooVal = complexFunctionCall()  //Okay

const val bar = "Hello world"           //Also okay
169
ответ дан GurV 3 September 2018 в 14:13
поделиться

Чтобы добавить к ответу Лука:

Константы времени компиляции

Свойства, значение которых известно во время компиляции, можно пометить как константы времени компиляции, используя const. Такие свойства должны удовлетворять следующим требованиям:

  • Верхний уровень или элемент объекта
  • Инициализировано значением типа String или примитивным типом
  • Нет пользовательского getter

Источник: Официальная документация

20
ответ дан EPadronU 3 September 2018 в 14:13
поделиться

Вы можете преобразовать Kotlin в Java. Затем вы можете видеть, что const имеет еще один статический модификатор, чем val. Простой код, подобный этому.

Kotlin:

const val str = "hello"
class SimplePerson(val name: String, var age: Int)

To Java (Partion):

@NotNull
public static final String str = "hello";

public final class SimplePerson {
   @NotNull
   private final String name;
   private int age;

   @NotNull
   public final String getName() {
      return this.name;
   }

   public final int getAge() {
      return this.age;
   }

   public final void setAge(int var1) {
      this.age = var1;
   }

   public SimplePerson(@NotNull String name, int age) {
      Intrinsics.checkParameterIsNotNull(name, "name");
      super();
      this.name = name;
      this.age = age;
   }
}
-1
ответ дан Jin Wang 3 September 2018 в 14:13
поделиться
Другие вопросы по тегам:

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