2016-06-22 2 views
1

Написанный ниже простой код scala.Можно ли задать имя переменной как значение другой переменной?

var variableName:String = "Mickey" 
var Mickey:String = "Mouse" 

Есть ли способ заменить Микки во второй строке на значение переменной variableName? Если нет, то почему?

Редактировать: Хотя моя цель задать этот вопрос - понять, как/почему это может/не может быть сделано, я хотел бы написать о том, как меня познакомили с этой проблемой. Я написал следующий фрагмент кода.

class VertexProperty(var id:Long) extends Serializable 

имя переменной идентификатор жестко закодировано, но я хочу поставить имя переменной, которая получает генерируемый во время выполнения (для например: вход от пользователя).

Ниже приведен псевдокод, который я хочу написать в scala.

//pseudo-code 
1. Ask user for variable's name and type. <user types xyz and String> 
2. Define a class with the following definition, 
    class VertexProperty(var xyz:String) extends Serializable 
+0

вы можете сделать это наоборот, чтобы получить имя переменной 'Mickey' и сохранить ее как строку в другой переменной, используя ** Reflection ** – Edwin

+2

Зачем вам это нужно? Вероятно, есть более эффективные способы решения вашей * актуальной * проблемы, например, использование «Карты». – Jesper

+3

Это не имеет смысла, потому что имя переменной - это просто произвольный идентификатор, который ничего не значит. Вы можете изменить все имена переменных в программе на 'v0',' v1', 'v2' и т. Д., И программа должна по-прежнему работать одинаково. Ваша идея, похоже, хочет нарушить это предположение. Независимо от того, что вы хотите достичь с этим, должны быть другие и лучшие способы. – Madoc

ответ

Смежные вопросы