2015-11-04 3 views
4

Scala видно, чтобы преобразовать объекты типа String в StringOps. Как это делается? То есть Как и когда Scala преобразует объект String в StringOps?Scala transform String to StringOps

Приветствия, Маттиас

+0

Это не вопрос программирования, сузите к какой-то проблеме, иначе он может быть закрыт. – kebs

+0

На самом деле это вопрос программирования. Вы просто должны знать Scala, чтобы понять это. (Ну, неудивительно, вопрос был отмечен «scala» в конце концов.) – VasyaNovikov

+0

Этот вопрос не «слишком широк». – pedrofurla

ответ

5

Существует неявное преобразование определяется из String к StringOps в Predef.scala. https://github.com/scala/scala/blob/a24ca7fa617cabada82c43d2d6ac354db698d181/src/library/scala/Predef.scala#L308. Это преобразует экземпляр String в экземпляр StringOps, если вы вызываете метод из класса StringOps на String.

+1

Это, кстати, означает, что StringOps срабатывает только тогда, когда вы его вызываете. В противном случае String остается String, никакого времени процессора на любые преобразования. – VasyaNovikov

+0

Хорошо! Понял, спасибо! Я предполагаю, что он одинаковый для всех * классов Ops, таких как ArrayOps и т. Д. – user1578293