Skip to main content

የውሂብ አይነት

ይህ ሰነድ በWave ፕሮግራሚንግ ቋንቋ የተሰጡ የተለያዩ የውሂብ አይነቶችን ይገልጻል። በWave ውስጥ እሴቶችን በተለያዩ የዳታ አይነቶች ማከማቸት እና መስራት ትችላለህ፣ እና እያንዳንዱ የውሂብ አይነት ውሂቡ እንዴት እንደሚገለፅ እና ማህደረ ትውስታ እንዴት እንደሚሰራ በግልፅ ይገልጻል።

የውሂብ አይነቶችን በግልፅ መግለጽ ከ Wave ዋና ንድፍ ፍልስፍናዎች አንዱ ነው። Wave ** ሙሉ በሙሉ ጠንካራ ** ስርዓት ነው። ሁሉም የvar/fun መግለጫዎች እና ተለዋዋጭ ጅምር ግልጽ ዓይነቶችን ይፈልጋሉ፣ እና በዐውደ-ጽሑፍ ላይ የተመሠረተ ዓይነት ማጣቀሻ አይደገፍም። ስለዚህ፣ እንደ var x = 1; አይነት ከሌለ፣ ማጠናቀር አይሳካም። ይህ የኮድዎን ሃሳብ በግልፅ እንዲገልጹ፣ ስህተቶችን በሚዘጋጁበት ጊዜ አስቀድመው እንዲይዙ እና ቀልጣፋ የማህደረ ትውስታ አጠቃቀምን እና የተረጋጋ አፈፃፀምን ለማረጋገጥ ያስችላል።


የኢንቲጀር ዓይነት

የኢንቲጀር አይነት የኢንቲጀር እሴቶችን ለማከማቸት ይጠቅማል። በነባሪ Wave ብዙ ጊዜ i32 (የተፈረመ ባለ 32-ቢት ኢንቲጀር) ይጠቀማል እና

የተፈረሙ የኢንቲጀር ዓይነቶች ከi8 እስከ i1024 ይገኛሉ፣ እና ያልተፈረሙ የኢንቲጀር ዓይነቶች ከu8 እስከ u1024 ይገኛሉ። ይህ ከቀላል ስሌት እስከ ትልቅ ኢንቲጀር ኦፕሬሽኖች፣ ክሪፕቶግራፊያዊ ሂደት እና ዝቅተኛ ደረጃ የስርዓት ፕሮግራሞችን ሰፋ ያለ ፍላጎቶችን ሊያረካ ይችላል።

የኢንቲጀር ዓይነቶችን በመጠቀም ቀላል ምሳሌ ይኸውልዎ።

var a: i32 = 100;
var b: u32 = 200;

ተንሳፋፊ ነጥብ ዓይነት

ተንሳፋፊ ነጥብ ዓይነቶች እውነተኛ እሴቶችን ለማከማቸት ያገለግላሉ. በWave ውስጥ ጥቅም ላይ የዋለው ነባሪ ተንሳፋፊ ነጥብ አይነት f32 ነው፣ እና ከፍ ያለ ትክክለኛነት ካስፈለገ ትልቅ መጠን ያለው አይነት መምረጥ ይቻላል።

Wave ተንሳፋፊ ነጥብ አይነቶችን ከf32 እስከ f128 ያቀርባል፣ ይህም ተጠቃሚዎች በስሌት ትክክለኛነት እና በአፈጻጸም መካከል እንዲመርጡ ያስችላቸዋል። ይህ ከአጠቃላይ የቁጥር ስሌቶች እስከ ትክክለኛ ሳይንሳዊ ስሌቶች ድረስ የእውነተኛ ቁጥር ስራዎችን ለተለያዩ ዓላማዎች እንዲቆጣጠሩ ያስችልዎታል።

ከታች ተንሳፋፊ ነጥብ አይነት በመጠቀም ምሳሌ ነው.

var pi: f32 = 3.14;
var e: f64 = 2.71828;

የሕብረቁምፊ ዓይነት

የሕብረቁምፊው አይነት የጽሑፍ ውሂብን ለመቆጣጠር ያገለግላል። በWave ውስጥ፣ ሕብረቁምፊዎች የሚገለጹት በstr ቁልፍ ቃል ነው፣ እና የሕብረቁምፊ ቃል በቃል የሚገለጹት በድርብ የጥቅስ ምልክቶች (") በመጠቅለል ነው።

ሕብረቁምፊዎች መልዕክቶችን ለማውጣት፣ የተጠቃሚን ግብአት ለማስኬድ እና በጽሁፍ ላይ የተመሰረተ መረጃን ለማስኬድ በፕሮግራሞች ውስጥ በስፋት ጥቅም ላይ ይውላሉ።

የሚከተለው የሕብረቁምፊውን ዓይነት የመጠቀም መሠረታዊ ምሳሌ ነው።

var text: str = "Hello Wave";

የቡልዮን ዓይነት

የቦሊያን ዓይነት እውነተኛ ወይም ሐሰት እሴትን የሚወክል የውሂብ ዓይነት ነው። Wave የbool አይነትን ይጠቀማል እና እሴቱ እንደ true ወይም false ይገለጻል።

የቦሊያን ዓይነቶች በሁኔታዊ እና በሉፕ መግለጫዎች ውስጥ ቁልፍ ሚና ይጫወታሉ እና የፕሮግራሙን ፍሰት ለመቆጣጠር ያገለግላሉ።

var isActive: bool = true;
var isAvailable: bool = true;

የቁምፊ አይነት

የቁምፊ ዓይነቶች ነጠላ ቁምፊዎችን ለማከማቸት ያገለግላሉ። የ char ቁልፍ ቃል በመጠቀም የታወጀ ሲሆን አንድ ቁምፊ ብቻ ሊይዝ ይችላል።

የገጸ-ባህሪይ ቃላት በነጠላ ጥቅስ ምልክቶች (') በመከበባቸው ይገለፃሉ።

var letter: char = 'A';

ባይት አይነት

የባይት አይነት መጠኑ 1 ባይት የሆነ መረጃን ለማከማቸት ይጠቅማል። ይህ አይነት በዋነኛነት ጠቃሚ የሚሆነው እንደ ሁለትዮሽ ዳታ ማቀናበሪያ፣ የፋይል ግቤት/ውፅዓት እና የኔትወርክ ፕሮግራሚንግ ያሉ ዝቅተኛ ደረጃ ዳታ ማቀናበር በሚያስፈልግበት ጊዜ ነው።

በWave ውስጥ፣ የባይት አይነት የ byte ቁልፍ ቃል ተጠቅሟል።

var byteData: byte = 0xFF;

የጠቋሚ ዓይነት

የማስታወሻ አድራሻዎችን በቀጥታ ለመጥቀስ የጠቋሚ ዓይነቶች ጥቅም ላይ ይውላሉ. በWave፣ የጠቋሚው አይነት በptr<T> መልክ ታውጇል።

ጠቋሚዎች ዝቅተኛ ደረጃ የማህደረ ትውስታ መዳረሻ በሚያስፈልግበት ጊዜ ጥቅም ላይ ይውላሉ እና በዋናነት በስርዓት ፕሮግራሚንግ ወይም በአፈፃፀም-ወሳኝ ኮድ ውስጥ ጥቅም ላይ ይውላሉ።

var ptr: ptr<T> = &someVariable;

null ቀጥተኛ

ከWave እስከ null ቀኖናዊ ቀጥተኛ ቃላት ናቸው።

  • null መለያ አይደለም። (var null = ... ቅጽ አይቻልም)
  • nullptr<T> አይነት ብቻ ሊመደብ ይችላል።
var p: ptr<i32> = null;  // OK

// var n: i32 = null; // ERROR
// var b: bool = null; // ERROR

የድርድር ዓይነት

የአደራደር አይነቶች አንድ አይነት የውሂብ አይነት ብዙ እሴቶችን በቅደም ተከተል ለማከማቸት ያገለግላሉ። በWave፣ ድርድር በarray<type, size> መልክ ታውጇል፣ እና የድርድር መጠኑ በተጠናቀረ ጊዜ በግልፅ ተገልጿል።

ይህ የማስታወሻ አወቃቀሩን ግልጽ ያደርገዋል እና የተረጋጋ መዳረሻን ያስችላል.

var numbers: array<i32, 5> = [1, 2, 3, 4, 5];

እያንዳንዱ የውሂብ አይነት የተነደፈው ለዓላማው እና ለባህሪያቱ የሚስማማውን ክልል እና መጠን መምረጥ እንዲችሉ ነው። ትክክለኛውን የውሂብ አይነት መምረጥ ማህደረ ትውስታን በብቃት እንዲቆጣጠሩ ያስችልዎታል, እንዲሁም የኮድዎን መረጋጋት እና ተነባቢነት በእጅጉ ያሻሽላል.