Soplang Logo
Soplang

Functions

Qeexid iyo isticmaal hawlaha (hawl) ee Soplang, wicitaan, celin qiime (celi), iyo loops gudaha hawl.

Functions in Soplang

Functions (hawlo) waa qaybo koodh oo dib loo isticmaali karo. Soplang waxa lagu qeexaa hawl waxaana natiijo lagu soo celinayaa celi.

Define a Function – hawl

Hawl waxa ay bilaabataa hawl kadibna magac hawl iyo parameters. Parameters-ku waxay noqon karaan dynamic ama typed (eeg hoos).

define_function.sop
hawl salaan(magac) {
  qor("Asalaamu calaykum, " + magac)
}

Call a Function

Marka aad qeexdo, ku wac magaceeda oo raaci doodaha (arguments):

call_function.sop
salaan("Aamina")

Return Values – celi

Adeegso celi si aad uga soo celiso hawl qiime.

return_values.sop
hawl labanlaab(x) {
  celi x * 2
}

abn natiijo = labanlaab(5)
qor("Natiijo: " + natiijo)

Hawl aan celi lahayn — ama celi aan qiime lahayn — waxay soo celisaa null (maran). celi bannaan waxaa loo isticmaali karaa in hawsha si degdeg ah looga baxo:

early_return.sop
hawl hubi(x) {
  haddii (x < 0) {
      qor("Tiro taban")
      celi
  }
  qor("Tiro togan")
}

hubi(-1)   // Tiro taban
hubi(3)    // Tiro togan

Typed Parameters and Return Types

Waxaad nooc u qori kartaa parameter kasta, iyo nooca celinta adigoo : nooc ku daraya ) kadib. Noocyada waa la hubiyaa ka hor inta aan barnaamijka la fulin.

typed_functions.sop
hawl isu_gee(abn a, abn b): abn {
  celi a + b
}

hawl magac_buuxa(qoraal hore, qoraal dambe): qoraal {
  celi hore + " " + dambe
}

qor(isu_gee(2, 3))                  // 5
qor(magac_buuxa("Aamina", "Cali"))  // Aamina Cali

Haddii nooc khaldan la gudbiyo, barnaamijku ma bilaabmayo:

typed_functions_error.sop
isu_gee("2", 3)   // Khalad nooc: doodda 1 ee 'isu_gee' waa 'abn', laakiin 'qoraal' ayaa la helay [E022]

Recursion

Hawl way wici kartaa nafteeda:

recursion.sop
hawl fiibo(n) {
  haddii (n < 2) {
      celi n
  }
  celi fiibo(n - 1) + fiibo(n - 2)
}

qor(fiibo(10))   // 55

Functions as Values

Hawluhu waa qiimayaal (nooc() waxay soo celisaa "hawl"). Waxaad ku kaydin kartaa doorsoome, ama u gudbin kartaa hawl kale sida aaddin() iyo shaandhee() — magaca hawsha qaansooyin la'aan iyo xarfo-xigasho la'aan.

functions_as_values.sop
hawl laban(x) {
  celi x * 2
}

door f = laban
qor(f(21))                     // 42
qor([1, 2, 3].aaddin(laban))   // [2, 4, 6]

Scope

Doorsoomayaasha lagu qeexo gudaha hawl waa maxali (local) — dibadda lagama arko. Beddelidda doorsoome dibadda ah gudaha hawl ma saameyso kan dibadda; taa beddelkeeda, natiijada ku soo celi celi.

scope.sop
door tirin = 0

hawl kordhi(n) {
  celi n + 1
}

tirin = kordhi(tirin)
tirin = kordhi(tirin)
qor(tirin)   // 2

Loops Inside Functions

Hawluhu waxay ka kooban karaan loops iyo logic kale sida blocks-ka caadiga ah.

loops_inside_functions.sop
hawl muujin(liis) {
  kuceli (i 0 ilaa liis.dherer() - 1) {
      qor("Liiska: " + liis[i])
  }
}

Summary

KeywordMeaning
hawlfunction definition
celireturn value

Functions ee Soplang waxay ka dhigaan koodhka dib-u-isticmaal leh, nadiif, oo Somali-first.

On this page