分享一道Go面試必考的題

joy發表於2019-05-10

下面的程式碼會輸出什麼?

package main

import "fmt"

type Human interface {
    Say() string
}

type Man struct {
}

func (m *Man) Say() string {
    return "man"
}

func IsNil(h interface{}) bool {
    return h == nil
}

func main() {
    var a interface{}
    var b *Man
    var c *Man
    var d Human
    var e interface{}
    a = b
    e = a
    fmt.Println(a == nil) // (1)
    fmt.Println(e == nil) // (2)
    fmt.Println(a == c)   // (3)
    fmt.Println(a == d)   // (4)
    fmt.Println(c == d)   // (5)
    fmt.Println(e == b)   // (6)
    fmt.Println(IsNil(c)) // (7)
    fmt.Println(IsNil(d)) // (8)
}

題目的詳細講解,歡迎關注 Go後端乾貨

Go,後端等技術乾貨分享,歡迎一起交流學習

WechatIMG99.jpeg

相關文章