Skip to content

接口题目 #52

Open
Open
@JasonJe

Description

@JasonJe
  1. 一个指针可以指向一个接口类型吗

函数参数为interface{}时候可以接收任何类型的值。

永远不要使用一个指针指向一个接口类型,因为它已经是一个指针。

  1. 正确的接口赋值示范
type Fragment interface {
        Exec(transInfo *TransInfo) error
}
type GetPodAction struct {
}
func (g GetPodAction) Exec(transInfo *TransInfo) error {
        ...
        return nil
}

正确的赋值方式有:

var fragment Fragment = new(GetPodAction)
var fragment Fragment = &GetPodAction{}
var fragment Fragment = GetPodAction{}
  1. 下面哪一行代码会 panic
package main

func main() {
  var x interface{}
  var y interface{} = []int{3, 5}
  _ = x == x
  _ = x == y
  _ = y == y
}

解析:_ = y == y行。因为两个比较值的动态类型为同一个不可比较类型。

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoGolang

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions