Основными ошибками в вашем коде являются доступ к массивам за пределами (что можно исправить, перебирая элементы в массивах вместо использования индексов), и построение окончательного массива (который можно создать с помощью добавление, а не присвоение индексам).
Вы также используете ==
для присвоения, что является ошибкой, поскольку это оператор сравнения. Single равно =
является оператором присваивания.
Вот исправленная рабочая версия вашего кода.
package main
import (
"fmt"
)
func main() {
firstarray := []int{1, 9, 12, 16, 13, 11, 14, 18, 8, 12}
secondarray := []int{9, 7, 15, 8, 14, 19, 34, 18, 13, 11}
var finalarray []int
for _, a1 := range firstarray {
for _, a2 := range secondarray {
if a1 == a2 {
finalarray = append(finalarray, a2)
}
}
}
fmt.Println("matching no is", finalarray)
}
Было бы лучше использовать карты для поиска подходящих элементов, с тех пор код может быть O (n), а не O (n ^ 2).