2016-10-19 3 views
0

Я часто вижу подобный код следующую строку в САР:В чем смысл g0ofg1?

val xs = g0ofg1(xs) 

Функция g0ofg1 выглядит как какой-то кастинг. Что это на самом деле?

ответ

2

Это перегруженный символ.

Существует много типов в ATS, для которых существует индексированный и неиндексированный вариант.

  • Например, существует int(i) (для некоторого i из рода int) и int. Оба типа предназначены для целых чисел, но первые индексируются по типу int.
  • Другой пример: string (просто строка) и string(n) (длина индексированные строки)

g0ofg1 для преобразования индексного типа в Неиндексированные один. Это castfn, поэтому эта операция не имеет связанных с ней затрат времени выполнения.

g1ofg0 предназначен для перемещения в другом направлении: от неиндексированного до индексированного типа.