Junior
რა ტიპის მონაცემები არსებობს Go-ში?
sobes.tech AI
პასუხი AI-სგან
Go тілінде төрт түрлі деректер типтері бар:
-
Негізгі типтер (Basic types) - компилятор алдын ала анықтаған.
- Булев:
bool - Сандык түрлөрү:
- Тигилдер:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Үзгүлтүксүз онду:
float32,float64 - Комплекс сан:
complex64,complex128
- Тигилдер:
- Жиптер:
string
- Булев:
-
Курама түрлөр (Aggregate types) - чектелген өлчөмдүү топтомдор.
- Массивдер:
[n]T(мындаn- өлчөмү,T- элементтердин түрү) - Структуралар:
struct {}(аты менен берилген өрөөлөрдүн топтому)
- Массивдер:
-
Референс түрлөр (Reference types) - шилтемелүү түрлөр, шилтеме аркылуу өткөрүлөт, негизги маалыматка көрсөткүчтү сактайт.
- Слайстар:
[]T(динамикалык массив, массивтин негизинде курулган) - Карта (Map):
map[K]V( ачкыч-баа жуптарынын топтому) - Пайдалануу көрсөткүчтөрү:
*T(өзгөрмөнүн дарегин сактайт) - Каналдар:
chan T,chan<- T,<-chan T(горутиндердин синхрондошуусу жана байланыш үчүн) - Функциялар:
func(...) (...)(функциянын сигнатурасы)
- Слайстар:
-
Интерфейс түрлөр (Interface types) - методдордун сигнатураларын аныктайт, алардын негизинде түрлөр ишке ашырылат.
- Интерфейстер:
interface{}(бош интерфейс),interface{ methodName(...) ... }
- Интерфейстер:
Мисалдар:
// Базалык түрлөр
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Курама түрлөр
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Массив
type Person struct { // Структура
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Референс түрлөр
var slice []int = []int{1, 2, 3} // Слайс
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Карта
var ptr *int = &age // Указатель
var dataChan chan int = make(chan int) // Канал
var myFunc func(int) int = func(x int) int { return x * 2 } // Функция
// Интерфейс типтери
var i interface{} = "anything" // Бос интерфейс
type Shape interface { // Интерфейс
Area() float64
}