Go Println和Printf的区别详解

 更新时间:2020年12月15日 12:02:34   作者:冷月醉雪  
这篇文章主要介绍了Go Println和Printf的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Println 和Printf 都是fmt包中公共方法;在需要打印信息时常用的函数,那么二函数有什么区别呢?

附上代码

package main
import (
 "time"
 "fmt"
)
const (
 Man = 1
 Female = 2
)
func main(){
 timer := time.Now().Unix()
 if(timer % Female == 0){
  fmt.Println("%d is Female", timer)
  fmt.Printf("%d is Female", timer)
 }else{
  fmt.Println("%d is Man", timer)
  fmt.Printf("%d is Man", timer)
 }
}

运行结果:

%d is Man 1529049077 // println输出结果

1529049077 is Man // printf输出结果

结果可知

Printf : 可打印出格式化的字符串,Println不行;

总结:

println会根据你输入格式原样输出,printf需要格式化输出并带输出格式;

补充:Go基础-Go中的Println和Print和Printf之间的区别

1、Println

在Println中进行输出时:

package main 
import ( 
 f "fmt" 
) 
func main(){ 
 f.Println("hello","world","hello","world") 
 f.Println("hello","world","hello","world") 
}

输出:

/private/var/folders/yt/24f_qg2n6879g2fg85994jf40000gn/T/___go_build_helloworld_go #gosetup

hello world hello world

hello world hello world

Process finished with exit code 0

在同一输出函数中输出多项的时候,hello和world中是存在空格的

在不同输出函数之间会换行

2、Print

在Print中进行输出时:

package main 
import f "fmt" 
func main(){ 
 f.Print("hello","world","hello","world") 
 f.Print("hello","world","hello","world") 
}

输出:

/private/var/folders/yt/24f_qg2n6879g2fg85994jf40000gn/T/___go_build_helloworld_go #gosetup

helloworldhelloworldhelloworldhelloworld

Process finished with exit code 0

在同一个输出函数中处处多项的时候,hello和world中不存在空格

在不同输出函数之间,不换行

3、Printf

在Printf进行输出时:

package main 
import f "fmt" 
func main(){ 
 a := 10 
 b := 20 
 c := "hello" 
 f.Printf("a=%d,b=%d",a,b) 
 f.Printf("c=%s",c) 
}

输出:

/private/var/folders/yt/24f_qg2n6879g2fg85994jf40000gn/T/___go_build_helloworld_go #gosetup

a=10,b=20c=hello

Process finished with exit code 0

可以对参数进行格式化输出,在不同输出函数中是不换行的。

总结:

函数

同函数输出多项

不同函数输出

Println

之间存在空格

换行

Print

不存在空格

不换行

Printf

格式化输出

不换行

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • 如何使用 Go 和 Excelize 构建电子表格

    如何使用 Go 和 Excelize 构建电子表格

    这篇文章主要介绍了如何使用Go和Excelize构建电子表格,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Go高级特性探究之HTTP错误处理详解

    Go高级特性探究之HTTP错误处理详解

    在Web应用程序中,HTTP错误处理是非常重要的,它关系到Web应用程序的稳定性和可靠性,本文介绍如何在Go项目中处理HTTP错误,并提供相应的解决方案和实践经验,希望对Go语言Web应用程序的开发者有所帮助
    2023-06-06
  • Golang实现协程超时控制的方式总结

    Golang实现协程超时控制的方式总结

    我们知道,go协程如果不做好处理,很容易造成内存泄漏,所以对goroutine做超时控制,才能有效避免这种情况发生,本文为大家整理了两个常见的Golang超时控制方法,需要的可以收藏一下
    2023-05-05
  • 用golang如何替换某个文件中的字符串

    用golang如何替换某个文件中的字符串

    这篇文章主要介绍了用golang实现替换某个文件中的字符串操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 详解Go 结构体格式化输出

    详解Go 结构体格式化输出

    这篇文章主要介绍了Go 结构体格式化输出的相关资料,帮助大家更好的理解和学习go语言,感兴趣的朋友可以了解下
    2020-08-08
  • Go gRPC进阶教程服务超时设置

    Go gRPC进阶教程服务超时设置

    这篇文章主要为大家介绍了Go gRPC进阶,gRPC请求的超时时间设置,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • golang中命令行库cobra的使用方法示例

    golang中命令行库cobra的使用方法示例

    这篇文章主要给大家介绍了关于golang中命令行库cobra的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • 用golang实现一个定时器任务队列实例

    用golang实现一个定时器任务队列实例

    golang中提供了2种定时器timer和ticker,分别是一次性定时器和重复任务定时器。这篇文章主要介绍了用golang实现一个定时器任务队列实例,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • 详解Golang中channel的实现

    详解Golang中channel的实现

    channel俗称管道,用于数据传递或数据共享,其本质是一个先进先出的队列,使用goroutine+channel进行数据通讯简单高效,同时也线程安全,本文就给大家讲讲Golang中channel的实现,需要的朋友可以参考下
    2023-09-09
  • 为什么Go里值为nil可以调用函数原理分析

    为什么Go里值为nil可以调用函数原理分析

    这篇文章主要为大家介绍了为什么Go里值为nil可以调用函数原理分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论