Вы можете сделать это с помощью функции вместо переменной.
def y(x):
return x + 10
Таким образом, print(y(x))
выдаст текущее значение x
плюс десять.
Однако нет способа сделать это только с переменной . Переменные только изменяют свое значение, когда вы явно указываете им.
Это потому, что вы хотите увидеть реальный код Scala Swing, или вас просто интересует, является ли Scala Swing «готовым к производству» ? Если последнее, то Scala Swing очень хорош: я начал использовать его для всего кода графического интерфейса. Сравните:
JButton b = new JButton();
b.setText("OK");
b.setFont(f);
b.setPreferredSize(new Dimension(20, 20));
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//reacction here
}
});
с:
val b = new Button {
text = "OK"
font = f
preferredSize = (20, 20)
}
listenTo(b)
reactions += {
case ButtonClicked(`b`) => //reaction here
}
Поскольку Scala Swing на самом деле является лишь легким слоем поверх Java Swing, вы можете легко интегрировать любой компонент Java Swing и быть уверенным, что все работает нормально.
Тем не менее, документация в Scala 2.7 довольно плохо. Я понимаю, что Scala Swing обновляется до версии 2.8 и что это будет включать улучшенную документацию.
Дом зеркал
Я написал эту игру в Scala. Он с открытым исходным кодом и использует Swing через интерфейсы библиотек Java и Scala.
Scala API прекрасно работает, как показано на иллюстрации oxbox_lakes. Я должен был использовать интерфейс Java только для определенного низкоуровневого управления, такого как пользовательская альфа-композиция.
До того, как библиотека Scala-swing стала стабильной, игра была основана на Scala-Squib , но этот проект приостановил AFAIK.
Недавно я присутствовал на лекции о Scala, и одним из демонстрационных продуктов был клиент Scala-Swing Twitter. Это с открытым исходным кодом, и проект TalkingPuffin . Пользовательский интерфейс выглядел довольно привлекательно для проекта Swing, и я считаю, что проект ищет участников.