Loading...

Маалымат түрлөрү (тип данных)

 

Эстутумда сакталган бардык маалыматтар негизинен биттердин жыйындысы. Жана бул маалымат кандайча чечмеленерин жана аны менен кандай операцияларды аткарууга болорун аныктаган маалымат түрү. Go - бул статикалык түрдө терилген тил, башкача айтканда, программада колдонулган бардык маалыматтар белгилүү бир типте.

Go бир катар камтылган маалымат түрлөрүнө ээ жана ошондой эле өз түрлөрүн аныктоого мүмкүндүк берет. Келгиле, биз колдоно ала турган негизги камтылган маалымат түрлөрүн карап көрөлү.

Бүтүн сан түрлөрү

бир катар түрлөрү бүтүн сандарды билдирет:

  • int8 : -128ден 127ге чейинки бүтүн санды билдирет жана эс тутумда 1 байт (8 бит) ээлейт
  • int16 : -32768ден 32767ге чейинки бүтүн санды билдирет жана эс тутумда 2 байт (16 бит) ээлейт
  • int32 : -2147483648ден 2147483647ге чейинки бүтүн санды билдирет жана 4 байт (32 бит) алат
  • int64 : -9 223 372 036 854 775 808ден 9 223 372 036 854 775 807ге чейинки бүтүн санды билдирет жана 8 байт (64 бит) ээлейт
  • uint8 : 0дөн 255ке чейинки бүтүн санды билдирет жана 1 байт ээлейт
  • uint16 : 0дөн 65535ке чейинки бүтүн санды билдирет жана 2 байтты ээлейт
  • uint32 : 0дөн 4294967295ке чейинки бүтүн санды билдирет жана 4 байт алат
  • uint64 : 0дөн 18446744073709551615ке чейинки бүтүн санды билдирет жана 8 байт ээлейт
  • байт : типтин синоними uint8, 0дөн 255ке чейинки бүтүн санды билдирет жана 1 байтты ээлейт
  • рун : типтин синоними int32-2147483648ден 2147483647ге чейинки бүтүн санды билдирет жана 4 байт алат
  • int : платформага жараша 4 байт же 8 байт боло турган кол коюлган бүтүн санды билдирет. Башкача айтканда, int32 же int64 менен дал келиңиз.
  • uint : int түрү сыяктуу, платформага жараша 4 байт же 8 байт болушу мүмкүн болгон кол коюлбаган гана бүтүн санды билдирет. Башкача айтканда, uint32 же uint64 дал келет.

Бул жерде u (uint32) префикси менен башталган кол коюлган түрлөрү (б.а. терс болушу мүмкүн) жана кол коюлбаган оң түрлөрү бар экенин эстен чыгарбоо оңой. Ооба, ошондой эле байт бар - uint8 үчүн синоним жана rune - int32 үчүн синоним.

int жана uint түрлөрүн белгилей кетүү керек. Алар белгилүү бир платформа үчүн эң натыйжалуу өлчөмгө ээ (32 же 64 бит). Бул программада бүтүн сандарды көрсөтүү үчүн эң көп колдонулган түрү. Мындан тышкары, ар кандай компиляторлор, ал тургай, бир эле платформа үчүн, бул түрлөрү үчүн ар кандай өлчөмдө камсыз кыла алат.

Бүтүн сандарды көрсөткөн өзгөрмөлөрдү аныктоо мисалдары:

1

2

3

1

5

6

7

8

9

10

11

12

var a int8 = -1

var b uint8 = 2

var c byte = 3  // byte - синоним типа uint8

var d int16 = -4

var f uint16 = 5

var g int32 = -6

var h rune = -7     // rune - синоним типа int32

var j uint32 = 8

var k int64 = -9

var l uint64 = 10

var m int = 102

var n uint = 105

Калкыма чекиттеги сандар

Бөлчөк сандарды көрсөтүүнүн эки түрү бар:

  • float32 : 1,4*10 -45тен 3,4*10 38ге чейин (оң үчүн) өзгөрүлмө чекит санын билдирет . Эстутумда 4 байт (32 бит) ээлейт
  • float64 : 4.9*10 -324 дан 1.8* 10308ге чейин (оң үчүн) калкыма чекиттүү санды билдирет жана 8 байт ээлейт.

float32 түрү тактыктын алты ондук цифрасын камсыз кылат, ал эми float64 түрү тактыктын болжол менен 15 цифрасын камсыз кылат.

float32 жана float64 түрлөрүн колдонуу мисалдары:

1

2

3

4

5

var f float32 = 18

var g float32 = 4.5

var d float64 = 0.23

var pi float64 = 3.14

var e float64 = 2.7

Бүтүн жана бөлчөк бөлүктүн ортосундагы бөлүүчү катары чекит колдонулат.

Татаал сандар

Татаал сандарды көрсөтүү үчүн өзүнчө түрлөрү бар:

  • kompleks64 : реалдуу жана элестүү бөлүктөрү float32 сандарын билдирген татаал сан
  • комплекс128 : реалдуу жана элестүү бөлүктөрү float64 сандарын билдирген татаал сан

Колдонуу мисалы:

1

2

var f complex64 = 1+2i

var g complex128 = 4+3i

bool териңиз

Логикалык же bool түрү эки маанинин бирине ээ болушу мүмкүнчыныгы (чын) же жалган (жалган).

1

2

var isAlive bool = true

var isEnabled bool = false

Саптар

Саптар сап түрү менен көрсөтүлөт . Go'до сап сап литералына туура келет - кош тырмакчага алынган символдордун ырааттуулугу:

1

var name string = "Том Сойер"

Жөнөкөй символдордон тышкары, сап \ менен тескери сызык менен башталган атайын ырааттуулуктарды (качуунун ырааттуулугун) камтышы мүмкүнЭң кеңири таралган тизмектер:

  • \n : жаңы сап
  • \r : кайтаруу
  • \t : таб
  • \" : саптардын ичиндеги кош тырмакча
  • \\ : тескери сызык

Демейки маани

Эгерде өзгөрмө маани берилбесе, анда анын түрү үчүн аныкталган демейки мааниге ээ. Сандык типтер үчүн бул 0 саны, логикалык тип үчүн бул жалган, саптар үчүн "" (бош сап).

Толук терүү

Өзгөрмөлөрдү аныктоодо, биз өзгөрмөнү кандайдыр бир маани менен инициализация кылсак, түрүн өткөрүп жиберсек болот:

1

var name = "Tom"

Бул учурда, компилятор мааниге негизделген өзгөрмөнүн түрүн кыйыр түрдө чыгарат. Эгерде сап ыйгарылган болсо, анда ошого жараша өзгөрмө саптын түрүн көрсөтөт, эгерде бүтүн сан дайындалса, анда өзгөрмө int түрүн көрсөтөт ж.б.у.с.

Ошол эле нерсе, негизинен, кыска өзгөрмө аныктамасы менен болот, качан маалымат түрү да ачык көрсөтүлбөсө:

1

name := "Tom"

Ошол эле учурда, эгерде биз өзгөрмөнүн түрүн көрсөтпөсөк, анда ага кандайдыр бир баштапкы маани берилиши керек экендигин эске алуу керек. Бир эле убакта берилиштердин түрүн жана баштапкы маанисин көрсөтпөстөн өзгөрмө жарыялоо ката болуп калат:

1

var name    // ! Ошибка

Маалыматтын түрүн көрсөтүшүңүз керек (бул учурда өзгөрмө демейки мааниге ээ болот):

1

var name string

Же маалымат түрү алынган баштапкы маанини көрсөтүңүз:

1

var name = "Tom"

Же бир эле учурда экөө тең:

1

var name string = "Tom"

Бир нече өзгөрмөлөрдү кыйыр түрдө терүү:

1

2

3

4

var (

        name = "Tom"

        age = 27

)

же ушул сыяктуу:

1

var name, age = "Tom", 27