登录
首页 >  Golang >  Go问答

为什么我可以从 Go 中的类型调用函数?

来源:stackoverflow

时间:2024-04-29 17:36:36 483浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《为什么我可以从 Go 中的类型调用函数?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我正在学习 go,在进行“go 之旅”时,我发现了以下代码:

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("Good morning!")
    case t.Hour() < 17:
        fmt.Println("Good afternoon.")
    default:
        fmt.Println("Good evening.")
    }
}

我想知道我在做什么,所以我打开了有关“time”包的文档。

在执行 t := time.now() 时,根据文档,我得到一个类型结构 time (https://golang.org/pkg/time/#now),但是,为了获得我们的小时执行 t.hour()。 我会理解 t 是否是对象 time 的实例,而 hour 是该对象的方法,但这不是 oop,并且 t 是一种类型,我希望像 time.hour(t) 那样调用它来获取小时.

您能否告诉我为什么 t.hour() 有效?

谢谢! /米格尔


解决方案


t 不是类型,它是一个变量,保存 time.Time 类型的结构值,由 time.Now() 函数返回。

t.Hour() 使用 t 接收器调用 Time.Hour() 方法。

终于介绍完啦!小伙伴们,这篇关于《为什么我可以从 Go 中的类型调用函数?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>