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.
import 'dart:io';
haloo(umri, jinsia){
print('umri wako ni miaka ${umri} na jinsia yako ni $jinsia');
}
void main(){
print('Andika umri wako');
int umri = int.parse(stdin.readLineSync()!);
print('Andika jinsia yako');
String jinsia = stdin.readLineSync()!;
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’}
import 'dart:io';
haloo(umri, jinsia, {makazi ='Tanzania'}){
print(' umri wako ni miaka ${umri} na jinsia yako ni $jinsia unaishi ${makazi}');
}
void main(){
print('Andika umri wako');
int umri = int.parse(stdin.readLineSync()!);
print('Andika jinsia yako');
String jinsia = stdin.readLineSync()!;
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 arameter 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 ndani ya mabano [] kisha utaweka aina yake ya data ikifuatiwa na alama ya ? mfano [String? mkoa]
import 'dart:io';
haloo(int umri, String jinsia, [String? mkoa]){
print(' umri wako ni miaka ${umri} na jinsia yako ni $jinsia unaishi $mkoa');
}
void main(){
print('Andika umri wako');
int umri = int.parse(stdin.readLineSync()!);
print('Andika jinsia yako');
String jinsia = stdin.readLineSync()!;
print('Andika Mkoa unaoishi');
String mkoa = stdin.readLineSync()!;
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. Ili kufanyanya parameter iwe required tutaiweka kwenye mabano {} na tutatumia keyword required mfano {required int umri}.
void haloo({required String jina, required String jinsia}) {
print("Hello $jina jinsia yako ji $jinsia.");
}
void main() {
haloo(jinsia: "Mwanaume", jina: "Daudi");
haloo(jinsia: "Mwanamke", jina: "Mariamu");
}
Function inaweza kuwa ni parameter katika function nyingine
Yes wakati mwingine unaweza kuifanya functio 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 functio ya tat ni kupata juma hivyo itajumlisha factorial ya 5 na 6. Kisha tutakwenda kuiita hii function ya tatu.
void main(){
print(jumla());
}
factorial1(x){
if(x <=0){
return 1;
}else{
return x * factorial1(x -1);
}
}
factorial2(y){
if(y <=0){
return 1;
}else{
return y * factorial1(y -1);
}
}
jumla(){
return factorial2(5) + factorial1(6);
}
Pia kwa kutumia keyword callback tunaweza kutumia function kama parameter. Hivyo itakubidi ueleze kwenye parameter kuwa inabeba function na uatatja return type yake.
void kwanza(void Function() callback) {
callback();
}
void pili() {
print("kutoka function ya pili");
}
void main() {
kwanza(pili);
}
Function inaweza kutumika kama variable
Pia function inaweza kuwa ni variable, ambayo unaweza kuitumia kwenye function nyingine.
void main(){
int namba1 = factorial1(6);
int namba2 = factorial1(4);
print(namba2 + namba1);
}
factorial1(x){
if(x <=0){
return 1;
}else{
return x * factorial1(x -1);
}
}
factorial2(y){
if(y <=0){
return 1;
}else{
return y * factorial1(y -1);
}
}
Mwisho
Katika somo linalofuata tutakwenda kujifunza kuhusu method ambazo hufanya kazi mbalimbali kwenye data.