Go言語で引数として渡されたinterafaceをコピーしてスライスに格納したいです。

つまり下記にようなことがしたいです。

func f(x AInterface){
    s := make([]AInterface, 10)
    for i := 0; i< 10; i++{
        s[i] = x
    }
}

これだとそれぞれの要素が1つの構造体への参照を持つことになると思います。それぞれ独立した構造体を指すインタフェースを持つスライスを作成するにはどうすればいいのでしょうか。