当前位置: 首页 > 面试题库 >

引用“不是类型”-将类型存储在结构中

颜熙云
2023-03-14
问题内容

我有一个像这样的文件:

package foo
type Handler struct {}

然后在另一个文件中,我有:

import (
   "handlers/foo"
   "handlers/bar"
   "handlers/baz"
)

type AllHandlers struct {
    Foo foo.Handler
    Bar bar.Handler
    Baz baz.Handler
}

然后在另一个文件中,我有:

all := routes.AllHandlers{}
foo := all.Foo{}
bar := all.Bar{}
baz := all.Baz{}

但这给了我这个错误:

Foo不是类型

我可能做错了很多。我想做的是将所有处理程序存储在AllHandlers结构中,但不确定如何执行此操作。

我相信可以这样简化问题:

func (h HuruInjection) GetInjections() struct{} {
    return struct {
        Foo foo.Handler
        Bar  bar.Handler
        Baz baz.Handler
    }
}

上面的代码不会编译,主要是因为据我所知,您将返回类型而不是值-例如,使用Class而不是该Class的实例。我该如何进行编译?

参见以下示例:https
:
//gist.github.com/ORESoftware/894438aee1d16aa9b2cb12ba25df274e


问题答案:

我解决了这个问题,诀窍是使用正确的语法。而不是这样做:

import (
   "handlers/foo"
   "handlers/bar"
   "handlers/baz"
)

type AllHandlers struct {
    Foo foo.Handler
    Bar bar.Handler
    Baz baz.Handler
}

我这样做:

import (
   "handlers/foo"
   "handlers/bar"
   "handlers/baz"
)


type Foo = foo.Handler
type Bar = bar.Handler
type Baz = baz.Handler

那么我可以导入它,并使用Foo,Bar,Baz作为类型。因此,我认为您不能在结构中对类型进行分组,但是可以使用上述语法导入/导出类型。



 类似资料:
  • 问题内容: 我想将元素存储在一个列表中,每个元素具有4个参数,我试图创建一个数组列表,该列表为每个元素存储4个参数,它们是不同类型的: iD:int x位置:浮点 y位置:浮点 名称:字符串 我用: 但是当我使用时: 我得到错误: “ ArrayList类型的add(int,Object)方法不适用于参数(in,float,float)” 我不知道如何能够向ArrayList添加不同类型,有没有办

  • 在写这个问题之前,我看了以下链接: 未处理的异常:InternalLinkedHashMap 守则: 我只是不知道为什么错误存在,所以请帮帮我。谢谢你! 编辑:如果有助于解决问题,我可以将数据更改为限制

  • 问题内容: 在Swift编程语言中,它说“一个数组在一个有序列表中存储相同类型的多个值”。但是我发现您可以在数组中存储多种类型的值。描述不正确吗? 例如 问题答案: 来自REPL 您可以看到的是,这是或 发生的事情是提供了将数字和布尔值转换为的能力。需要编译代码时,编译器将执行转换。 因此,它们现在具有的通用类型,因此可以推断为 没有,您的代码将无法在REPL中编译。 但是你可以做到 因为它们具有

  • 本文向大家介绍C#中什么是值类型与引用类型?相关面试题,主要包含被问及C#中什么是值类型与引用类型?时的应答技巧和注意事项,需要的朋友参考一下 值类型:struct、enum、int、float、char、bool、decimal 引用类型:class、delegate、interface、array、object、string  

  • 由于Solidity是一个静态类型的语言,所以编译时需明确指定变量的类型(包括本地变量或状态变量),Solidity编程语言提供了一些基本类型(elementary types)可以用来组合成复杂类型。 类型可以与不同运算符组合,支持表达式运算,你可以通过表达式的执行顺序(Order of Evaluation of Expressions)来了解执行顺序。 值类型(Value Type) 值类型

  • 嗨,我正在尝试在spring启动应用程序的启动时加载一些数据库值。我有自动连线服务,在服务中我有自动连线Dao。下面是错误。 组织。springframework。豆。工厂UnsatifiedDependencyException:创建名为“validationExpressionService”的bean时出错:通过字段“validationExpressionDao”表示的未满足的依赖项;嵌套