格式化输出

news2024/11/24 11:09:13

1、golang不同输出语句的区别:

特点
PrintPrintlnPrintf输出内容到控制台(终端输出)
SprintSprintlnSprintf输出内容为字符串
FprintFprintlnFprintf输出内容到文件
特点

输出内容不会换行。

不能格式化字符串。

输出内容换行,。

不能格式化字符串。

输出内容不会换行。

可以格式化字符串。

2、格式化输出(Printf):

        1>、普通占位符:

占位符说明
%v以默认的方式打印变量的值
%T打印变量的类型

        例如:

package main

import "fmt"

func main() {
    var var1 = "abc"
	fmt.Printf("%v \n", var1)
	fmt.Printf("%T \n", var1)
	fmt.Printf("变量 %v 的类型是 %T \n", var1, var1)
}

        2>、布尔占位符:

占位符说明举例输出
%ttrue或falsePrintf("%t \n", true)true

        3>、整数占位符:

占位符说明
%+d带符号的整型
%q原样输出字符串,会包含定义字符串时的引号
%o将数值转换成不带零的八进制
%#o将数值转换成带零的八进制
%x将数值转换成小写的十六进制
%X将数值转换成大写的十六进制
%#x将数值转换成带0x的十六进制
%b打印整型的二进制

        例如:

package main

import "fmt"

func main() {
    fmt.Printf("%d \n", -666) //十进制表示
	fmt.Printf("%+d \n", 666)
	fmt.Printf("%q \n", "abc")
	fmt.Printf("%o \n", 65)
	fmt.Printf("%#o \n", 65)
	fmt.Printf("%x \n", 31)
	fmt.Printf("%X \n", 31)
	fmt.Printf("%#x \n", 31)
	fmt.Printf("%#X \n", 31)
	fmt.Printf("%b \n", 65)
}

        4>、浮点数占位符:

占位符说明
%f有小数点而无指数输出
%.nf保留小数点后n位输出
%g根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出
%e以科学计数法输出指定浮点数
%E以科学计数法输出指定浮点数

         例如:

package main

import "fmt"

func main() {  
    a := 10.5
	fmt.Printf("%f \n", a)
	fmt.Printf("%.2f \n", a) //表示保留小数点后两位
	fmt.Printf("%g \n", a)
	fmt.Printf("%e \n", a)
	fmt.Printf("%E \n", a)
}

        5>、字符串与字节切片占位符:以5做演示。

占位符说明
%5s最小宽度为5 (默认右对齐,如果字符串长度不足5,则左边补0)
%-5s最小宽度为5(左对齐)

%.5s

最大宽度为5
%5.7s最小宽度为5,最大宽度为7 (默认右对齐,如果字符串长度不足5,则左边补0;如果字符串长度大于7,则截断)
%-5.7s最小宽度为5,最大宽度为7(左对齐)
%5.3s如果字符串宽度大于3,则截断(默认右对齐)
%05s如果字符串宽度小于5,就会在字符串前面补零

        例如:

package main

import "fmt"

func main() {
    str1 := "abc"
	fmt.Printf("%5s \n", str1)
	fmt.Printf("%-5s \n", str1)
	str2 := "abcdefgh" //len(str2)=8
	fmt.Printf("%.5s \n", str2)
	fmt.Printf("%5.7s \n", str2)
	fmt.Printf("%-5.7s \n", str2)
	fmt.Printf("%5.3s \n", str2)
	fmt.Printf("%05s \n", str1)
}

         6>、指针占位符:

占位符说明
%p输出变量/常量的地址,十六进制表示,前缀0x

        例如:

package main

import "fmt"

func main() {
    str := "abc"
	fmt.Printf("%p \n", &str) //"&"表示取地址符,可以取出变量/常量的地址
}

 3、格式化输出到字符串示例:

package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
    name := "zhangsan"
	age := 20
	var str = fmt.Sprintf("my name is %s ,age %d", name, age)
	io.WriteString(os.Stdout, str)
    //fmt.Println(str)
}

io.WriteString(w, s)  //WriteString函数将字符串s的内容写入w中。
os.Stdout  //表示将接受的数据输出到标准输出

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/168461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言进阶】枚举与联合体

目录一:枚举1.1:枚举类型的定义:1.1:枚举的优点:1.2:枚举的使用:二:联合(共用体)2.1:联合类型的定义:2.2:联合类型的特点&…

cin、cin.getline(arr, size)、getline(cin, str)

一、cin使用空白(空格、制表符、换行符)来确定字符串的截止位置 注意下方这段代码 使用cin来接收姓名和甜点名,当我的名字长度大于一个单词长度时,cin直接按空格进行接收,将我输入的xiao接收到name中,wei接…

swiftUI coreml deeplabv3去除背景

现在手机的性能越来越好,好多深度学习的框架都能能够跑在手机上。因此就集成一下一个官方的深度学习model试一下。 其他的框架生成的模型都能通过相应的工具转换成mlmodel用,转换也比较简单。 下面以替换图像去背景为例,不过官方模型这个效果…

概论_第3章_二维随机变量__边缘概率密度

边缘概率密度是二维随机变量中的重点内容, 经常作为一个重要的考点, 必须掌握。一 定义对二维随机变量(X, Y) ,分量X, 或者Y的概率密度称为 (X, Y)的边缘概率密度,简称边缘密度,记为 或者 。边缘密度 或者 可由 二维随机变量的密…

什么是pod(容器组)

pod(容器组) 术语中英文对照: 英文全称英文缩写中文翻译PodPod容器组ContainerContainer容器ControllerController控制器 什么是 Pod 容器组? Pod(容器组)是 Kubernetes 中最小的可部署单元。一个 Pod&a…

基于FPGA的UDP 通信(六)

引言 前文链接: 基于FPGA的UDP 通信(一) 基于FPGA的UDP 通信(二) 基于FPGA的UDP 通信(三) 基于FPGA的UDP 通信(四) 基于FPGA的UDP 通信(五)…

【Spring6源码・AOP】AOP源码解析

上一篇《【Spring6源码・AOP】代理对象的创建》,我们知道了代理是如何创建的,那么它又是如何工作的呢? 创建完代理对象之后,最终,会真正的执行我们的目标方法,但是步入该方法,会进入cglib代理类…

ET框架关于opCode的理解

因为所有的网络消息在发送时候格式都是这样 对于用Protobuf定义的每一消息类型class,都需要定义一个对应消息头code在发送的时候,先将消息体进行序列化,再将code进行序列化,进行组装发送 //这个代码没有进行过优化,会产…

大衣哥给儿媳买回来烟花,是准备加入河南炮击山东大战吗

自从取得抗疫阶段性胜利后,国人就再也难以按捺激动的心情,都想通过放烟花以示庆祝。河南山东属于搭界的两个省,最近就因为放烟花,闹出来不小的笑话,有人甚至戏称炮击事件。 事情的起因是这样的,河南因为地处…

maven的build节点配置

虽然一直在使用maven,但是对于maven的配置还没有深入的了解过。本文以build节点为切入点,主要解释相关maven打包使用到的一些基础配置。 文章目录build节点常用插件spring-boot-maven-pluginmaven-jar-pluginmaven-dependency-plugin注意事项build节点 …

基于javaweb的会议管理系统源码+数据库,javaEE会议管理系统源码

guihaiyidao_git 介绍 javaEE工程 普通的javaEE工程,用idea打开工程即可运行 服务器用的是Tomcat 8.5.722 数据库用的Oracle xe版 数据库可视化工具使用的是PLSQL 相关软件 需要可从百度网盘中获取 链接:https://pan.baidu.com/s/1ZrmfsvQEA4dIP0GF_p…

CSS 布局 - 水平 垂直对齐

CSS 布局 - 水平 & 垂直对齐 那么怎样设置居中对齐呢? 我们可以用margin: auto来设置水平居中对其元素。auto可以防止 元素的宽高溢出,而且也可以平均分配两边的空白。 举例说明: .center {padding: 23px;border: 5px solid red;width: 41%;margin: auto; }那…

【数据结构】单向链表的原理及实现

1.什么是单链表 链表里的数据是以节点的方式表示的,每一个结点的组成是由:元素指针来组成的,元素就是存储数据里的存储单元,指针就是用来连接每一个结点的地址数据。这个以结点的序列来表示线性表被称作为单链表。 单链表是一种…

牛客寒假算法集训营1 补题

标题迷惑大赏 A、World Final? World Cup! 题目描述 众所周知,2022年是四年一度的世界杯年,那么当然要整点足球题。本题需要你模拟一次点球大战。 假设对战双方为A和B,则点球大战中双方会按照ABABABABAB方式来罚点球,即两队交…

【闪电侠学netty】第7章 数据载体ByteBuf的介绍

1. 内容概要 1.1 总结 1.1.1 内存管理 Netty 使用的是堆外内存,需要手动释放,使用引用计数的方式管理内存,当引用计数 0,回收ByteBuf 底层内存 原则:谁使用retain() , 谁释放release() 1.1.2 创建ByteBuf的方式 B…

ASCII码,字符,字符串三者之间的关系

程序调试中遇到问题:在使用sprintf 函数,在转换字符串时,如果遇到0时,会自动认为是结束标志,0以后的内容不会被添加进来。复习一下字符串:一. ASCII码是什么?ASCII 全称为 ( American Standard …

【2023更新】通过硬件触发信号实现OAK多相机之间的同步拍摄

编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 ▌前言 Hello,大家好,这里是OAK中国,我是助手…

经典文献阅读之--NeRF-SLAM(单目稠密重建)

0. 简介 最近几年随着深度学习的发展,现在通过深度学习去预估出景深的做法已经日渐成熟,所以随之而来的是本文的出现《Real-Time Dense Monocular SLAM with Neural Radiance Fields》。这篇文章是一个结合单目稠密SLAM和层次化体素神经辐射场的3D场景重…

【自学Docker 】Docker管理命令大全(下)

文章目录Docker kill命令Docker kill命令概述Docker kill命令语法Docker kill命令参数案例使用容器 ID 杀掉容器使用容器名杀掉容器Docker kill命令总结Docker rm命令Docker rm命令概述Docker rm命令语法Docker rm命令参数案例删除已停止的容器删除正在运行的容器Docker rm命令…

13.拷贝控制

文章目录拷贝控制13.1拷贝、赋值与销毁13.1.1拷贝构造函数合成拷贝构造函数拷贝初始化参数和返回值编译器可以绕过拷贝构造函数13.1.2拷贝赋值运算符重载赋值运算符合成拷贝赋值运算符13.1.3析构函数析构函数完成什么工作什么时候会调用析构函数合成析构函数13.1.4三/五法则需要…