Sobes.tech
Junior — Middle

Чӣ гуна бояд ҳолатҳоро идора кард, вақте ки интерфейс дар забони барномасозӣ дорои методҳо ё хусусиятҳо нест?

sobes.tech AI

Ҷавоб аз AI

Дар Go, интерфейс бе методҳо — ин интерфейси холӣ interface{}-и номида мешавад. Он метавонад арзишҳои ҳар гуна навъро дар бар гирад, зеро ҳама навъҳо интерфейси холиро иҷро мекунанд.

Маслиҳати истифода:

var i interface{}
 i = 42
fmt.Println(i) // нишон медиҳад 42

i = "сатр"
fmt.Println(i) // нишон медиҳад сатр

Агар интерфейс дорои методҳо набошад, барои нигоҳ доштани ҳар гуна арзиш истифода мешавад, аммо барои кор бо навъи махсус, бояд истифода бурдани изҳороти навъ (type assertion) ё switch-и навъ (type switch) зарур аст. Ин имкон медиҳад, ки бо бехатарӣ арзиши навъи лозим аз интерфейси холӣ гирифта шавад.