Экспорт функций с анонимной структурой в качестве параметра [нельзя использовать значение (тип struct {…}) в качестве типа struct {…} в качестве аргумента для package.Func]

Вот кусок кодаplay.google.org который работает без проблем:

package main

import (
    "fmt"
)

func PrintAnonymous(v struct {
    i int
    s string
}) {
    fmt.Printf("%d: %s\n", v.i, v.s)
}

func PrintAnonymous2(v struct{}) {
    fmt.Println("Whatever")
}

func main() {
    value := struct {
        i int
        s string
    }{
        0, "Hello, world!",
    }
    PrintAnonymous(value)
    PrintAnonymous2(struct{}{})
}

Однако еслиPrintAnonymous() Функция существует в другом пакете (скажем,temp), код не будет работать:

cannot use value (type struct { i int; s string })
as type struct { i int; s string } in argument to temp.PrintAnonymous

Мой вопрос:

Есть ли способ вызвать (публичную) функцию с анонимной структурой в качестве параметра (a.k.a.PrintAnonymous() выше)?Функция с пустой структурой в качестве параметра (a.k.a.PrintAnonymous2() выше) можно вызвать, даже если он существует в другом пакете. Это особый случай?

Ну, я знаю, что всегда могу назватьstruct Чтобы решить проблему, мне просто любопытно по этому поводу, и мне интересно, почему кажется, что это не разрешено.

Ответы на вопрос(2)

Ваш ответ на вопрос