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

如何在Go中找到对象的类型?

南宫凯康
2023-03-14
问题内容

如何在Go中找到对象的类型?在Python中,我只是typeof用来获取对象的类型。类似地,在Go中,是否有实现相同方法的方法?

这是我要迭代的容器:

for e := dlist.Front(); e != nil; e = e.Next() {
    lines := e.Value
    fmt.Printf(reflect.TypeOf(lines))
}

在这种情况下,我无法获取对象行的类型,这是字符串数组。


问题答案:

Go反射包提供了检查变量类型的方法。

以下代码段将打印出字符串,整数和浮点数的反射类型。

package main

import (
    "fmt"
    "reflect"
)

func main() {

    tst := "string"
    tst2 := 10
    tst3 := 1.2

    fmt.Println(reflect.TypeOf(tst))
    fmt.Println(reflect.TypeOf(tst2))
    fmt.Println(reflect.TypeOf(tst3))

}

输出:

Hello, playground
string
int
float64

请参阅:http :
//play.golang.org/p/XQMcUVsOja以查看实际效果。

此处提供更多文档:http :
//golang.org/pkg/reflect/#Type



 类似资料:
  • 我无法获得对象行的类型,在本例中,这是一个字符串数组。

  • 问题内容: 当试图理解一个程序时,或者在某些极端情况下,能够真正找出某种类型的东西很有用。我知道调试器可以向您显示一些类型信息,并且您通常可以依靠类型推断来避免在那种情况下不指定类型,但是我仍然很想拥有类似Python的东西 更新: 在Swift的最新版本中对此进行了更改,现在为您提供了对类型的引用,而不是动态类型的实例。 这似乎是最有前途的,但到目前为止我还无法找出实际的类型 我还尝试使用类引用

  • 问题内容: 我希望Selenium通过箭头键浏览菜单-首先单击顶部菜单项,然后按“ DOWN”,“ DOWN”,… 问题是您必须始终提供特定的元素才能将“ DOWN”发送到。 有什么方法可以获取当前元素? 我试过了: 但它表示该表达式无法识别或未返回正确的对象。 我希望我错过了一些愚蠢的把戏。 问题答案: 没有比访问更直接的方法了

  • 问题内容: 我希望Selenium通过箭头键浏览菜单-首先单击顶部菜单项,然后按“ DOWN”,“ DOWN”,… 问题是您必须始终提供特定的元素才能将“ DOWN”发送到。 有什么方法可以获取当前元素? 我试过了: 但它表示该表达式无法识别或未返回正确的对象。 我希望我缺少一些愚蠢的把戏。 问题答案: 不知道比访问更直接的方法 如何测试Selenium RC中关注的元素?

  • 考虑到第一个角的坐标(左上角)和宽度/高度与Rect对象相关联,找到角似乎非常容易,但问题是,对于旋转的矩形(通常是boundingRect,但边不平行于轴),这些值非常不同。在这种情况下,它存储了与另一个矩形相对应的值,该矩形的边平行于轴并覆盖旋转的矩形,因此我无法检测实际矩形的角。 此外,我想做一个比较这两个算法之间的检测一张纸从图像。 > Canny边->最大轮廓->最大矩形->查找角点->

  • 问题内容: 假设我有以下结构: 如果我将该结构作为对象 如果我将此对象设置为nil 它不起作用,实际上是类型分配错误,但适用于映射和切片。那么,我将如何删除该对象(即取消分配)呢?我查看了内置的delete文档,但它从给定的映射中删除了一个条目。谢谢。 问题答案: Go是一种垃圾收集语言。您不应该这样做,也不能从内存中删除对象。这样做是垃圾收集器的 职责 和 责任 ,并且它是 自动执行的 。当对象