Мне было интересно, есть ли какие-нибудь языки, которые позволяют использовать именованные кортежи. То есть: объект с несколькими переменными разного типа и настраиваемым именем.
E.g.:
public NamedTuple<double:Speed, int:Distance> CalculateStuff(int arg1, int arg2)
var result = CalculateStuffTuple(1,2);
Console.WriteLine("Speed is: " + result.Speed.ToString())
Console.WriteLine("Distance is: " + result.Distance.ToString())
Я мог понять, как динамик может поддерживать такую функцию. Статические языки, в которых я обычно плаваю (например, C #), могут использовать словарь, но это небезопасно по типу, если все элементы не относятся к одному типу. Или вы можете использовать тип Tuple, но это означает, что у вас есть фиксированные имена членов (Var1, Var2 и т. Д.).
Вы также можете написать небольшой собственный класс, но этого я бы хотел избежать.
Я мог бы представить, что язык обработки макросов мог бы написать что-то подобное для вас на статическом языке, но я не знаю такого языка.
Это вытекает из моего ответа от этого вопрос о типах возврата.