Soplang Logo
Soplang

Data Types

Noocyada xogta ee Soplang: primitives (abn, jajab, qoraal, bool), ururinta (teed, walax), null, iyo sida loo adeegsado.

Data Types in Soplang

Soplang waxa uu leeyahay noocyo xog oo kala duwan si uu u metelo qiimeyaal kala geddisan. Boggan waxa uu daboolayaa noocyada aasaasiga ah (primitives), ururinta (collections), iyo sida ugu habboon ee loo isticmaalo.

Primitive Types

Kuwaani waa noocyada ugu aasaasiga ah ee dhisaya noocyada kale ee adag.

Numbers

Soplang waxa uu taageeraa tirooyinka dhan (abn) iyo jajab (jajab). Waxa aad isticmaali kartaa door (dynamic) ama abn/jajab (static). Faahfaahin dheeraad ah: Numbers.

numbers.sop

numbers.sop
// Dynamic typing
door lambarka1 = 42       // abn
door lambarka2 = 3.14     // jajab

// Static typing
abn lambarka3 = 100
abn lambarka4 = -25

// Arithmetic
qor(lambarka1 + lambarka2)   // 45.14
qor(lambarka1 * lambarka3)   // 4200
qor(lambarka3 / lambarka1)   // 2.380952380952381

Strings

Strings (qoraal) waa taxane xarfo ah. Waxaad adeegsan kartaa xigasho labalaab ("...") ama mid keliya ('...'). Ma jiro string interpolation — isticmaal +. Faahfaahin dheeraad ah: Strings.

strings.sop

strings.sop
// Dynamic typing
door magac1 = "Soplang"
door magac2 = 'Programming Language'

// Static typing
qoraal magac3 = "Soplang: Luuqadda Barnaamijyada ee Afka Soomaaliga"

// Concatenation
qor(magac1 + " - " + magac2)    // Soplang - Programming Language

// Dherer & habab
qor(dherer(magac1))             // 7
qor(magac1.xarafaha_weyn())     // SOPLANG
qor(magac1.xarfaha_yaryar())    // soplang
qor(magac3.jar(0, 7))           // Soplang
qor(magac1[0])                  // S

// Tiro iyo qoraal isku dar
door version = 2
qor(magac1 + " v" + version)    // Soplang v2

Booleans

Qiimayaasha run/been: run (true) iyo been (false). Waxaad adeegsan kartaa door ama bool. Marka la daabaco, waxay u muuqdaan run iyo been.

booleans.sop

booleans.sop
// Dynamic typing
door waa_sax = run
door waa_qalad = been

// Static typing
bool waa_arday = run
bool waa_macalin = been

// Logical
qor(waa_sax && waa_qalad)  // been
qor(waa_sax || waa_qalad)  // run
qor(!waa_sax)              // been

// Comparison
door x = 10
door y = 20
qor(x > y)     // been
qor(x <= y)    // run
qor(x == 10)   // run
qor(x != y)    // run

Null

null waxay metelaysaa qiime la'aan. Marka la daabaco, ama nooc() lagu baaro, waxay u muuqataa maran. Hawl aan waxba soo celin waxay soo celisaa null.

null.sop

null.sop
door natiijo = null
qor(natiijo)         // maran
qor(nooc(natiijo))   // maran

Collection Types

Ururinta waxa ay kuu oggolaanayaan in aad isku kaydiso qiimeyaal badan.

Lists

Liisaska (teed) waa ururin leh amar (ordered). Waad abuuri kartaa adigoo adeegsanaya teed (static) ama door oo leh []. Faahfaahin dheeraad ah: Arrays.

lists.sop

lists.sop
// Abuurista liis
door tiro = [1, 2, 3, 4, 5]
teed magacyada = ["Cabdi", "Caasha", "Xasan", "Hodan"]
teed isku_dhafan = [1, "Soplang", run, 3.14]

// Helidda walxaha (zero-indexed)
qor(tiro[0])          // 1
qor(magacyada[2])     // Xasan
qor(magacyada[-1])    // Hodan (index taban: dhamaadka ka tiri)

// Beddelid
tiro[0] = 10
qor(tiro)             // [10, 2, 3, 4, 5]

// Hababka liisaska
tiro.kudar(6)         // ku dar dhamaadka
qor(tiro)             // [10, 2, 3, 4, 5, 6]

door ugu_dambeeyay = magacyada.kasaar()   // ka saar kan ugu dambeeya
qor(ugu_dambeeyay)    // Hodan
qor(magacyada)        // [Cabdi, Caasha, Xasan]

// Dherer
qor(magacyada.dherer())   // 3
qor(dherer(isku_dhafan))  // 4

Objects

Objects (walax) waa lammaane fure–qiime ah. Waxaad ku abuuri kartaa door adigoo adeegsanaya {} ama nooca static ee walax. Faahfaahin dheeraad ah: Objects.

objects.sop

objects.sop
// Abuurista objects
door qof = {
  magac: "Cabdilaahi",
  da: 25,
  waa_arday: run
}

walax luuqad = {
  magac: "Soplang",
  sanadka: 2023,
  features: ["OOP", "Dynamic Typing", "Easy Syntax"]
}

// Helidda qiimeyaal (dot-notation)
qor(qof.magac)          // Cabdilaahi
qor(luuqad.features)    // [OOP, Dynamic Typing, Easy Syntax]

// Bracket-notation (fure qoraal ah)
qor(qof["magac"])       // Cabdilaahi

// Beddelid iyo ku darid
qof.da = 26
qof.degaan = "Muqdisho"
qor(qof)                // {da: 26, degaan: Muqdisho, magac: Cabdilaahi, waa_arday: run}

// Hubi furaha
qor(qof.leeyahay("magac"))    // run
qor(qof.leeyahay("luuqad"))   // been

// Habab
qor(qof.fure())          // [da, degaan, magac, waa_arday]
qor(qof.qiime())         // [26, Muqdisho, Cabdilaahi, run]
qor(dherer(luuqad))      // 3

Checking Types

Isticmaal nooc() si aad u ogaato nooca qiime kasta: abn, jajab, qoraal, bool, teed, walax, hawl, ama maran. Eeg Type Conversion.

On this page