小编Yul*_*ney的帖子

go中fmt.Println()和println()之间的区别是什么

在go中,如果我们想要打印一些东西,我们可以这样做:

import "fmt"

func main(){
    fmt.Println("Hello world!")
}
Run Code Online (Sandbox Code Playgroud)

但是我发现没有导入就可以做同样的事情fmt:

func main(){
    println("Hello world!")
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?

go println

109
推荐指数
3
解决办法
3万
查看次数

没有身体的功能是什么意思?

我正在阅读包的代码,time然后我想知道它是如何func After(d Duration) <-chan Time工作的.

我发现代码如下:

func After(d Duration) <-chan Time {
    return NewTimer(d).C
}

func NewTimer(d Duration) *Timer {
    c := make(chan Time, 1)
    t := &Timer{
        C: c,
        r: runtimeTimer{
            when: nano() + int64(d),
            f:    sendTime,
            arg:  c,
        },
    }
    startTimer(&t.r)
    return t
}
Run Code Online (Sandbox Code Playgroud)

所以我找到了startTimer- 函数startTimer没有函数体这么奇怪.

func startTimer(*runtimeTimer)
Run Code Online (Sandbox Code Playgroud)

我想知道:

  1. 真正的代码在哪里? startTimer
  2. 为什么这里可以存在"抽象方法"
  3. 为什么Go的作者这样写了

谢谢!

go abstract-methods

25
推荐指数
1
解决办法
2806
查看次数

标签 统计

go ×2

abstract-methods ×1

println ×1