build.gradle
файлы - это просто Groovy сценарии.Таким образом, его синтаксис применяется здесь
В Groovy вы можете игнорировать круглые скобки при вызове функции, поэтому
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
фактически эквивалентно
implementation('com.squareup.okhttp3:okhttp:3.12.0')
В Groovy вы такжеимеют GString
с , которые представлены "
.Они содержат встроенные String
с.В этом конкретном случае вы не интерполируете какое-либо значение, поэтому оба значения
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
и
implementation "com.squareup.okhttp3:okhttp:3.12.0"
эквивалентны.Помните, что если бы вы хотели интерполировать какое-то значение, вы бы применили метод
implementation "com.squareup.okhttp3:okhttp:$okhttpVersion" // this line works
implementation 'com.squareup.okhttp3:okhttp:$okhttpVersion' // this line doesn't work
compile
для определения зависимостей в пользу implementation
и api
.Вы можете найти больше информации здесь .Вы можете подумать, что если вы как-то выставляете классы ваших зависимостей, вы будете использовать api
, но если вы используете зависимости внутри implementation
- это хорошо