Golang中println和fmt.Println区别解析

 更新时间:2023年03月21日 11:01:20   作者:路多辛  
Golang 中打印数据通常使用 fmt.Println() 方法,也可以使用内置的 println() 方法。这两个方法大家可能都使用过,它们的区别是什么呢?本文给大家详细讲解,感兴趣的朋友跟随小编一起看看吧

Golang 中打印数据通常使用 fmt.Println() 方法,也可以使用内置的 println() 方法。这两个方法大家可能都使用过,它们的区别是什么呢?

println()

先看下 println() 方法的注释:

// The println built-in function formats its arguments in an
// implementation-specific way and writes the result to standard error.
// Spaces are always added between arguments and a newline is appended.
// Println is useful for bootstrapping and debugging; it is not guaranteed
// to stay in the language.

可以看出 println() 是内置方法,属于builtin 包(builtin包是Golang预声明的包,不需要 import 即可使用),可以传入多个Type类型(pointer、channel、func、 interface、map和slice 类型)参数,将结果写入标准错误。主要用于调试,不保证在未来的 Golang 版本中还保留此方法。

fmt.println()

再看下 fmt.println() 的注释:

// Println formats using the default formats for its operands and writes to standard output.
// Spaces are always added between operands and a newline is appended.
// It returns the number of bytes written and any write error encountered

可以看出 fmt.println() 属于 fmt 包,可以传入多个 interface 类型的参数,将结果写入标准输出。返回两个参数——写入的字节数和error。

println() 和 fmt.println() 的区别

通过上面的注释和说明可以看出如下区别:

  • 所属的包不同。println() 属于 builtin 包,fmt.println() 属于 fmt 包。

  • 输出方式不同。println() 输出到标准错误(STDERR),fmt.println() 输出到标出输出(STDOUT)。

  • 返回值不同。println()无返回值,fmt.println()有两个返回值——写入的字节数和error。

  • println() 输出结果可能与预期结果顺序不一致,而 fmt.Println() 输出结果与预期结果完全一致(这个特性是由标准错误和标准输出的特性决定的)。

  • println() 不能传入数组和结构体类型的参数。

  • 对于组合类型的参数,println() 输出的结果是参数的地址,而 fmt.Println() 输出的结果是字面量。

到此这篇关于Golang中println和fmt.Println有什么区别吗?的文章就介绍到这了,更多相关Golang println和fmt.Println区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang使用bcrypt包对密码进行加密的方法实现

    golang使用bcrypt包对密码进行加密的方法实现

    本文主要介绍了golang使用bcrypt包对密码进行加密的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 详解GO语言中[]byte与string的两种转换方式和底层实现

    详解GO语言中[]byte与string的两种转换方式和底层实现

    这篇文章主要为大家详细介绍了GO语言中[]byte与string的两种转换方式和底层实现的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以参考下
    2024-03-03
  • Go整合ElasticSearch的示例代码

    Go整合ElasticSearch的示例代码

    这篇文章主要介绍了Go整合ElasticSearch的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Golang反射获取变量类型和值的方法详解

    Golang反射获取变量类型和值的方法详解

    反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。这篇文章主要为大家介绍了Golang反射获取变量类型和值的方法,需要的可以参考一下
    2022-12-12
  • Bililive-go 实现直播自动监控录制功能

    Bililive-go 实现直播自动监控录制功能

    最近有直播录制的需求,但是自己手动录制太麻烦繁琐,于是用了开源项目Bililive-go进行全自动监控录制,对Bililive-go 直播自动监控录制实现思路感兴趣的朋友,一起看看吧
    2024-03-03
  • Go接口的用法详解

    Go接口的用法详解

    本文主要介绍了Go接口的用法详解,包括定义接口、实现接口、使用接口、空接口等,通过接口,可以实现多态性,即一个对象可以实现多个接口,从而实现不同接口的行为,感兴趣的可以了解一下
    2023-11-11
  • 一文了解Go语言io.Copy函数

    一文了解Go语言io.Copy函数

    这篇文章主要为大家介绍了Go语言io.Copy函数使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Go语言中Slice常见陷阱与避免方法详解

    Go语言中Slice常见陷阱与避免方法详解

    这篇文章主要为大家详细介绍的是 Go 语言中的 Slice 的常见陷阱以及如何避免这些错误,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2023-02-02
  • 使用Go语言实现跨域资源共享(CORS)设置

    使用Go语言实现跨域资源共享(CORS)设置

    在Web开发中,跨域资源共享(CORS)是一种重要的安全机制,它允许许多资源在一个网页上被另一个来源的网页所访问,然而,出于安全考虑,浏览器默认禁止这种跨域访问,为了解决这个问题,我们可以使用Go语言来设置CORS,需要的朋友可以参考下
    2024-06-06
  • Go微服务网关的实现

    Go微服务网关的实现

    本文主要介绍了Go微服务网关的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论