1*3c321d95SSadaf EbrahimiParameters 2*3c321d95SSadaf Ebrahimi========== 3*3c321d95SSadaf Ebrahimi 4*3c321d95SSadaf EbrahimiDeclare parameters on methods and constructors with either `ParameterSpec.builder()` or 5*3c321d95SSadaf Ebrahimi`FunSpec`'s convenient `addParameter()` API: 6*3c321d95SSadaf Ebrahimi 7*3c321d95SSadaf Ebrahimi```kotlin 8*3c321d95SSadaf Ebrahimival android = ParameterSpec.builder("android", String::class) 9*3c321d95SSadaf Ebrahimi .defaultValue("\"pie\"") 10*3c321d95SSadaf Ebrahimi .build() 11*3c321d95SSadaf Ebrahimi 12*3c321d95SSadaf Ebrahimival welcomeOverlords = FunSpec.builder("welcomeOverlords") 13*3c321d95SSadaf Ebrahimi .addParameter(android) 14*3c321d95SSadaf Ebrahimi .addParameter("robot", String::class) 15*3c321d95SSadaf Ebrahimi .build() 16*3c321d95SSadaf Ebrahimi``` 17*3c321d95SSadaf Ebrahimi 18*3c321d95SSadaf EbrahimiThe code above generates: 19*3c321d95SSadaf Ebrahimi 20*3c321d95SSadaf Ebrahimi```kotlin 21*3c321d95SSadaf Ebrahimifun welcomeOverlords(android: String = "pie", robot: String) { 22*3c321d95SSadaf Ebrahimi} 23*3c321d95SSadaf Ebrahimi``` 24*3c321d95SSadaf Ebrahimi 25*3c321d95SSadaf EbrahimiThe extended `Builder` form is necessary when the parameter has annotations (such as `@Inject`). 26