Prameter zinatakiwa zifuate utaratibu:
Unapoweka parameter unaziweka kwenye mpangilio, hivyo hata wakati wa kuweka argument unatakiwa ufuate utaratibu huo huo. Mfano kama function ina parameter 2 ya umri na jinsia, basi wakati wa kuweka argument ifuate utaratibu ho huo. Pia unatakiwa kuzingatia na aina zake za data. Kama parameter inahitaji namba wewe unaweka string hapa utasababisha error.
fun haloo(umri: Int, jinsia: String) {
println("umri wako ni miaka $umri na jinsia yako ni $jinsia")
}
fun main() {
println("Andika umri wako: ")
val umri = readLine()!!.toInt()
println("Andika jinsia yako: ")
val jinsia = readLine()!!
haloo(umri, jinsia)
}
Sasa hapo kama utachanganya mpangilio wa aprameter aina za data utaishia kupata error
Unaweza kuwa na default parameter
Default parameter ni parameter ambayo inakuwa umeshawekwa, hivyo mtumiaji wa program hana haja ya kujaza kitu. Kwa mfano katika program yetu ya hapo juu tunakwenda kuongeza parameter nyingine ambayo itaonyesha makazi. Tutaweka Tanzania kama default parameter
Ili uweze kuandika default parameter utaiweka ndani ya mabano {} utai declare kwa alama ya ( = ). Mfano {makazi = ‘Tanzania’}
fun haloo(umri: Int, jinsia: String, makazi: String = "Tanzania") {
println("umri wako ni miaka $umri na jinsia yako ni $jinsia unaishi $makazi")
}
fun main() {
println("Andika umri wako: ")
val umri = readLine()!!.toInt()
println("Andika jinsia yako: ")
val jinsia = readLine()!!
haloo(umri, jinsia)
}
Pia unaweza kuweka parameter ambayo sio lazima ijazwe hivyo inakuwa ni optional. Parameter hii inaweza kuwa ni default parameter. Na endapo hutakuwa na default parameter yenyewe itabeba value null kumaanisha haina kitu. Kwa mfano hapo tunataka kuongeza parameter ya kuweka jina la mkoa. Hiyo ttaifanya sio lazima ijazwe yaani option.
Ili kuweka optional parameter tutaiweka jina lake kisha utaweka aina yake ya data ikifuatiwa na alama ya ? mfano [String? mkoa]
fun haloo(umri: Int, jinsia: String, mkoa: String?) {
println("umri wako ni miaka $umri na jinsia yako ni $jinsia unaishi $mkoa")
}
fun main() {
print("Andika umri wako: ")
val umri = readLine()!!.toInt()
print("Andika jinsia yako: ")
val jinsia = readLine()!!
print("Andika Mkoa unaoishi: ")
val mkoa = readLine()
haloo(umri, jinsia, mkoa)
}
Hapo kwenye parameter ya unapoishi sikujaza kitu kivyo haikileta chochote, lakini ukijaza italeta, ni kwa sababu parameter ya mkoa ni option sio lazima kujazwa.
Required parameter
Pia parameter inaweza kuwa required kuwa ni lazima kujazwa na kama haitajazwa program haiwezi kuendelea kufanya kazi. Kwenye KKotlin parameter zote ni required tofauti na lugha nyingine kama Kotlin ambapo unaweza kuset required parameter.
Function inaweza kuwa ni parameter katika function nyingine
Yes wakati mwingine unaweza kuifanya function kuwa parameter kwa ajili ya function nyingine. Kwa mfano tunataka kupata juma ya factorial ya 6 na 5. Hivyo tutakuwa na function 3, ya kwanza ni kutafuta factoria ya 5 na ya pili ni kutafuta factorial ya 6 na function ya tatu ni kupata juma hivyo itajumlisha factorial ya 5 na 6. Kisha tutakwenda kuiita hii function ya tatu.
fun main() {
println(jumla())
}
fun factorial1(x: Int): Int {
return if (x <= 0) {
1
} else {
x * factorial1(x - 1)
}
}
fun factorial2(y: Int): Int {
return if (y <= 0) {
1
} else {
y * factorial1(y - 1)
}
}
fun jumla(): Int {
return factorial2(5) + factorial1(6)
}
Code hizo unaweza kuziandika hivi:
fun main() {
val result = jumla(5, 6)
println(result)
}
fun factorial1(x: Int): Int {
return if (x <= 0) {
1
} else {
x * factorial1(x - 1)
}
}
fun factorial2(y: Int): Int {
return if (y <= 0) {
1
} else {
y * factorial1(y - 1)
}
}
fun jumla(a: Int, b: Int): Int {
val resultA = factorial1(a)
val resultB = factorial2(b)
return resultA + resultB
}
Pia kwa kutumia keyword callback tunaweza kutumia function kama parameter. Hivyo itakubidi ueleze kwenye parameter kuwa inabeba function na uatatja return type yake.
fun kwanza(callback: () -> Unit) {
callback()
}
fun pili() {
println("kutoka function ya pili")
}
fun main() {
kwanza(::pili)
}
Hapo utaona kuna vitu vipy. Kwanza unit hii hutumika kuonyesha function ambayo haina argument . na alama ya :: hii ni operator ambayo ku reference kwenye function. Yaani hutumika katika kuitumia function fulani.
Ukirun hizo code utaona matokeo ni ya function ya pili ijapokuwa tumeiita function ya kwanza.
Function inaweza kutumika kama variable
Pia function inaweza kuwa ni variable, ambayo unaweza kuitumia kwenye function nyingine.
fun main() {
val namba1 = factorial1(6)
val namba2 = factorial1(4)
println(namba2 + namba1)
}
fun factorial1(x: Int): Int {
return if (x <= 0) {
1
} else {
x * factorial1(x - 1)
}
}
fun factorial2(y: Int): Int {
return if (y <= 0) {
1
} else {
y * factorial1(y - 1)
}
}
Mwisho
Katika somo linalofuata tutakwenda kujifunza kuhusu method ambazo hufanya kazi mbalimbali kwenye data.