当前位置: 首页 > news >正文

Go语言--语法基础5--基本数据类型--输入输出(2)

2、输出语句

Print 系列函数会将内容输出到系统的标准输出,
func Print(a ...interface{}) (n int, err error)
//一般输出,不带格式
func Printf(format string, a ...interface{}) (n int, err error) //格式化输出
func Println(a ...interface{}) (n int, err error) //换行输出
区别在于
Print 函数直接输出内容,
Printf 函数支持格式化输出字符串,
Println 函数会在输出内容的结尾添加一个换行符。

第一个:print

注意:不需要引用任何的包或者库,语言自带的:
print—— 最基础,只输出,而且什么都不加
package main
func main() {
print("hllo world (“n")

第二个:Println()

需要包含 fmt 包,并默认在每次输出结尾加入一个换行符。
package main
import "fmt"
func main() {
//print("hello word")
fmt.Println("go","python","c++","java")
}

第三个:Printf输出的各种占位符号

第一个参数部分的 format string 类型可以选择如下格式:
General
%v 以默认的方式打印变量的值
%T 打印变量的类型,注意:%t 是bool类型输出。
Integer
%+d 带符号的整型,
fmt.Printf("%
+d", 255)输出+255
%q 由引号围绕的字符字面值 a := "aaa" fmt.Printf("%q",
a) // 输出 "aaa"
%o 不带零的八进制 fmt.Printf("%o\n", 65) //101
%#o 带零的八进制 fmt.Printf("%#o\n", 65) //0101
%x 小写的十六进制 fmt.Printf("%x\n", 31) //1f
%X 大写的十六进制 fmt.Printf("%X\n", 31) //1F
%#x 带0x的十六进制 fmt.Printf("%#x\n", 31) //0x1f
%b 打印整型的二进制 fmt.Printf("%b\n", 65) //100
0001
String Width ( 5 做例子)
%s 正常字符串原样输出
%5s 最小宽度为5,不足5的时候,左补空格,超过5的时候,原样输出。
%-5s 最小宽度为5(左对齐,右补空格)
%.5s 最大宽度为5,多的部分裁掉,不够的时候原样输出。
%5.7s 最小宽度为5,最大宽度为7
%-5.7s 最小宽度为5,最大宽度为7(左对齐)
%5.3s 如果宽度大于3,则截断
%05s 如果宽度小于5,就会在字符串前面补零

注意: golang 没有 '%u' 点位符,若整数为无符号类型,默认就会被打印成无符 号的。
宽度与精度的控制格式以 Unicode 码点为单位。宽度为该数值占用区域的最小宽 度;
精度为小数点之后的位数。操作数的类型为 int 时,宽度与精度都可用字符 '*' 表 示。
对于 %g/%G 而言,精度为所有数字的总数,例如: 123.45 %.4g 会打印 123.5,
(而 %6.2f 会打印 123.45 )。 %e %f 的默认精度为 6 对大多数的数值类型而言,宽度为输出的最小字符数,如果必要的话会为已格 式化的形式填充空格。
而以字符串类型,精度为输出的最大字符数,如果必要的话会直接截断。
应用案例:
package main
import "fmt"
func main() {
var str string
var person struct {
name string
age int
}
person.name = "老王"
person.age = 50
str = "hello world"
fmt.Println("====一般占位符====")
fmt.Printf("%v\n", str) //hello world
fmt.Printf("%v\n", person) //{老王 50}
fmt.Printf("%+v\n", person) //{name:老王 age:50}
fmt.Printf("%#v\n", str) //"hello world"
fmt.Printf("%#v\n", true) //true
fmt.Printf("%T\n", str) //string
fmt.Printf("%T\n", true) //bool
fmt.Printf("%%\n") //%
fmt.Println("====布尔====")
fmt.Printf("%t\n", true)
fmt.Println("====整数====")
fmt.Printf("%b\n", 65) //1000001
fmt.Printf("%c\n", 65) //A
fmt.Printf("%d\n", 65) //65
fmt.Printf("%o\n", 65) //101
fmt.Printf("%q\n", 65) //'A'
fmt.Printf("%x\n", 31) //1f
fmt.Printf("%X\n", 31) //1F
fmt.Printf("%U\n", 31) //U+001F
fmt.Println("====浮点数及其复合构成====")
fmt.Printf("%b\n", 10.5) //5910974510923776p-49
fmt.Printf("%e\n", 10.5) //1.050000e+01
fmt.Printf("%E\n", 10.5) //1.050000E+01
fmt.Printf("%f\n", 10.5) //10.500000
fmt.Printf("%g\n", 10.5) //10.5
fmt.Printf("%G\n", 10.5) //10.5
fmt.Println("====字符串与字节切片====")
fmt.Printf("%s\n", "abc") //abc
fmt.Printf("%q\n", "abc") //"abc"
fmt.Printf("%x\n", "abc") //616263
fmt.Printf("%X\n", "abc") //616263
fmt.Println("====指针====")
fmt.Printf("%p\n", &str) //0xc0000441f0
}
http://www.xdnf.cn/news/1050175.html

相关文章:

  • GRPO训练布局感知的强化学习多模态文档解析框架-Infinity-Parser
  • HarmonyOSNext性能核弹:用Node-API引爆ArkTS/C++跨语言
  • 贝塞尔曲线的公式推导贝塞尔曲线的公式推导,和 SVG 中 Path 的贝塞尔曲线指令的理解记忆
  • 电感篇---常见作用
  • 2.SQL语句分类
  • css属性:图片使用filter属性使得position: fixed失效的情况
  • C语言状态机:从入门到精通
  • C++ lambda函数
  • 大数据实时风控引擎:Spark Streaming、Kafka、Flink与Doris的融合实践
  • pythonA股实时数据分析(进阶版)
  • 区间交集:区间选点
  • redis序列化
  • 以笔为剑,破茧成蝶
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio平台与Cherry Studio搭建知识库问答助手
  • 手机SIM卡通话中随时插入录音语音片段(Android方案)
  • C++20 核心特性详解:现代C++的进化里程碑
  • PyTorch 实现 MNIST 手写数字识别
  • Python训练营---DAY54
  • 子集筛选(Select by Data Index)组件研究
  • 2025年ASOC SCI2区TOP,多策略组合鲸鱼优化算法SCWOA+梯级水库调度,深度解析+性能实测
  • 线上GC count突增问题排查及修复记录
  • 创新项目实训纪实——总结与反思
  • 62-STM32的ISP一键下载电路
  • 如何判断一个项目是否有问题
  • MIT线性代数第一讲笔记
  • LlamaRL 大规模分布式异步强化学习框架
  • Java中hashCode方法与equal方法何时重写
  • 一夜冲刺!!微机原理与接口
  • 无人机指南
  • 常见内核TCP参数描述与配置