2014-12-06 5 views
1

Мне интересно, можно ли извлечь тип параметра типа. Например, я хочу, чтобы быть в состоянии сделать что-то вроде:Параметры типа печати в Rascal

case list[&T] _: println("list of <&T> type"); 

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

Возможно ли это? Или есть другой способ добиться этого?

ответ

2

Вы ищете typeOf, описанный в the Rascal Tutor. Функция, которая печатает тип аргумента может быть определен следующим образом (не забудьте добавить import Type; в исходный файл Rascal):

void printMyType(&T a) { println("<typeOf(a)>"); } 

Примеры:

rascal>printMyType(3) 
int() 
ok 

rascal>printMyType("abc") 
str() 
ok 
+0

ДУХ. Я видел это в документации, но не связал, как я могу ее использовать. Благодаря! – josh

+1

Добро пожаловать. Утверждения приняты ;-) –