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) зарур аст. Ин имкон медиҳад, ки бо бехатарӣ арзиши навъи лозим аз интерфейси холӣ гирифта шавад.