def /(p);
имя метода - ' / ', который получает параметр ' p '
p[0] == ?/
проверить, начинается ли строка с ' / '. Знак вопроса используется, чтобы указать, что символ используется буквально. Вы также можете считать это так же, как '/'
p[0] == ?/ ? exp1:exp2
Второй знак вопроса предназначен для условной оценки. Если выражение (p [0] ==? /) Истинно, тогда вычислить exp1, иначе вычислить exp2.
Таким образом, в приведенном выше случае, если строковый параметр начинается с '/' , затем возвращается значение @root + p, то есть с добавлением root. С другой стороны, если параметр не начинается с '/' , верните его как таковой.