ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Golang学习历程【第二篇 fmt包&变量、常量的界说】
[打印本页]
作者:
王柳
时间:
2024-12-21 07:21
标题:
Golang学习历程【第二篇 fmt包&变量、常量的界说】
前言:包是指由官方大概自界说的一系列功能集合体。使用前需要先引入,例如本日所讲的fmt包。引入方式如下: import "fmt"
1. fmt 包
fmt 包是一个非常重要且广泛使用的尺度库包,它提供了格式化I/O(输入/输出)功能,类似于C语言中的 printf 和 scanf。通过这个包,你可以读取输入并将数据格式化输出到尺度输出或其他写入器(writers)
1.1 打印(print)
打印功能,简单来说就是体系输出功能,英文简义为Print,驼峰命名,首字母大写,后缀ln换行寄义。后缀f体现可格式化打印
1.1.1 Print 打印
// package 包声明: 可以理解为一个文件夹
package main
// import 导入:一般指导入官方或自定义功能包
import "fmt"
// main函数 入口函数
func main() {
/**
* 打印输出功能
*/
fmt.Print('C') // 打印字符,单引号,语法灵活易学
fmt.Print("a") // 打印字符串
fmt.Print("Hello World") // 打印字符串,双引号
fmt.Print(123) // 打印整数
fmt.Print(3.1415926) // 打印小数
fmt.Print(true) // 打印布尔值
}
复制代码
上述效果:
67aHello World1233.1415926true
复制代码
总结:Print仅打印功能,可打印任意类型,仔细的朋侪可能发现,单引号字符串'C'输出效果为67,
单引号代表单个字符,输出的效果是ASCII值,双引号体现打印字符串
。如果使用'ABC'。运行效果会报错more than one character in rune literal。中文意思是:符文笔墨中有多个字符。
1.1.2 Println 打印后换行
上述代码如果使用Println 打印,代码如下:
注:以下代码以后只表现关键代码段,main函数不予展示。
fmt.Println('C') // 打印字符,单引号,语法灵活易学
fmt.Println("a") // 打印字符串
fmt.Println("Hello World","你好") // 打印字符串,双引号
fmt.Println(123) // 打印整数
fmt.Println(3.1415926) // 打印小数
fmt.Println(true) // 打印布尔值
复制代码
效果清楚明了,如下:
67
a
Hello World 你好
123
3.1415926
true
复制代码
1.1.3 Printf 打印格式化参数
可指定格式打印。常用格式类型如下:
格式化符号形貌重要程度(个人观点)%T打印变量类型
高
%v以默认格式输出变量
高
%t输出 true 或 false
高
%b二进制体现
高
%cUnicode 对应字符低%d十进制体现
高
%o八进制体现
高
%x十六进制体现(小写字母)
高
%X十六进制体现(大写字母)低%UUnicode 格式输出低%f十进制浮点数
高
%e科学计数法(小写 e)低%E科学计数法(大写 E)低%g主动选择 %f 或 %e 的简便体现
高
%s平凡字符串
高
%q带双引号的字符串或字符低%p指针地址低 示例代码:
fmt.Printf("布尔值:%t \n", false) // 打印布尔值
fmt.Printf("Unicode 65对应字符:%c \n", 65) // Unicode 对应字符
fmt.Printf("默认格式65:%v \n", 65) // 二进制打印
fmt.Printf("二进制65:%b \n", 65) // 二进制打印
fmt.Printf("十进制65:%d \n", 65) // 十进制打印
fmt.Printf("八进制65:%o \n", 65) // 八进制打印
fmt.Printf("十六进制1024(小):%x \n", 1024) // 十六进制小写打印
fmt.Printf("十六进制1024(大):%X \n", 1024) // 十六进制大写打印
fmt.Printf("'C' Unicode值:%U \n", 'C') // Unicode输出
fmt.Printf("浮点数:%f \n", 3.1415926) // 十进制浮点数
fmt.Printf("科学计数法(小):%e \n", 3.1415926) // 科学计数法(小写 e)
fmt.Printf("科学计数法(大):%E \n", 3.1415926) // 科学计数法(大写 e)
复制代码
运行效果:
布尔值:false
Unicode 65对应字符:A
默认格式65:65
二进制65:1000001
十进制65:65
八进制65:101
十六进制1024(小):400
十六进制1024(大):400
'C' Unicode值:U+0043
浮点数:3.141593
科学计数法(小):3.141593e+00
科学计数法(大):3.141593E+00
复制代码
1.2 输入(Scan)
输入用Scan体现,后缀f体现格式化输入
1.2.1 Scan 输入
示例:
// 基本变量声明:var <变量名> <类型>
var name string // 声明字符串类型
var age int // 声明整数类型
fmt.Print("请输入姓名和年龄:")
fmt.Scan(&name, &age) // 录入姓名和年龄
fmt.Printf("name=%s,age=%d \n", name, age) // 格式化输出姓名和年龄
复制代码
运行效果:
请输入姓名和年龄:张三 18
name=张三,age=18
复制代码
1.2.2 Scanf 格式化输入
示例:
// 基本变量声明:var <变量名> <类型>
var name string // 声明字符串类型
var age int // 声明整数类型
fmt.Print("请输入姓名和年龄:")
fmt.Scanf("%s %d", &name, &age)
fmt.Printf("name=%s,age=%d \n", name, age)
复制代码
运行如下示例,体验到:Go语言灵活多变,适合0底子学习
PS F:\go_project> go run main.go
请输入姓名和年龄:张三
name=张三,age=0
PS F:\go_project> go run main.go
请输入姓名和年龄:张三 18
name=张三,age=18
PS F:\go_project> go run main.go
请输入姓名和年龄:张三 李四
name=张三,age=0
PS F:\go_project> go run main.go
请输入姓名和年龄:张三 李四 18
name=张三,age=0
PS F:\go_project> go run main.go
请输入姓名和年龄:张三 18 李四
name=张三,age=18
PS F:\go_project> go run main.go
请输入姓名和年龄:18 张三
name=18,age=0
PS F:\go_project>
复制代码
2. 变量
变量,存储数据的容器,可以存放任何数据值。
变量名由字母、数字、下划线组成,数字不能开头。Go中的关键字和生存字不能作为变量名
2.1 变量的声明
声明变量,指的是界说变量
总共有以下几种方式:
// var <变量名> <数据类型>
var a string
// var <变量名>=<值>
var b = "张三"
fmt.Printf("a=%v,b=%v", a, b) // a没有赋值,默认为空
复制代码
效果:
a=,b=张三
复制代码
默认初始值测试:
var a string // 字符串,默认为空
var b int // 整型,默认为0
var c bool // 布尔值,默认为false
var d float32 // 浮点类型,默认为0
fmt.Printf("a=%v, b=%v, c=%v, d=%v", a, b, c, d) // a没有赋值,默认为空
复制代码
效果
a=, b=0, c=false, d=0
复制代码
提示:Go语言中变量声明必须使用,否则会报错提示 declared and not used,意思是声明了并没有使用
2.2 变量初始化,赋值
// 变量初始化声明的三种方式
// 1.1 先声明变量 格式: var <变量名> <变量类型>
var name string
// 1.2 后赋值 格式:<变量名> = <值>
name = "张三"
// 2. 声明的同时进行赋值 格式:var <变量名> = <值>
var age = 18
// 3.短变量声明法 格式:<变量名> := <值>
sex := "男"
score := 80
fmt.Print(name, age, sex, score)
复制代码
效果:
张三18男80
复制代码
2.2 声明多个变量
// 1. 一次声明相同类型 var <变量名1>,<变量名2>... <数据类型>
var a1, a2, a3 string
a1 = "张三"
a2 = "李四"
a3 = "王五"
fmt.Println(a1, a2, a3)
/*
* 2. 先声明,后赋值
var (
<变量名1> <数据类型>
<变量名2> <数据类型>
...
)
*/
var (
name string
age int
)
name = "赵六"
age = 20
fmt.Println(name, age)
/*
3. 声明即赋值
var (
<变量名1> = <值>
<变量名2> = <值>
...
)
*/
var (
num1 = 1
num2 = 2
)
fmt.Println(num1, num2)
// 4. 短变量声明法 <变量名1>,<变量名2>,<变量名3> := <值1>,<值2>,<值3>
num3, num4, num5 := 3, 4, "Hello"
fmt.Println(num3, num4, num5)
复制代码
效果:
提示:Println具有加空格及换行功能
张三 李四 王五
赵六 20
1 2
3 4 Hello
复制代码
var声明可用于全局界说使用,短变量声明只能用于局部变量。
2.3 匿名变量
匿名变量顾名思义没有变量名,一次性吸收,用_体现
示例:
package main
import "fmt"
// 先举示例,函数的定义后续学习讲解
func getUserInfo() (string, int) {
return "zhangsan", 10
}
// main函数 入口函数
func main() {
// var声明接收
var name, age = getUserInfo()
fmt.Println(name, age)
// _匿名变量,用于丢弃赋值
var _, age1 = getUserInfo()
fmt.Println(age1)
var name1, _ = getUserInfo()
fmt.Println(name1)
}
复制代码
效果:
zhangsan 10
10
zhangsan
复制代码
匿名变量不占用命名空间,可以重复使用,但是var,:=声明的变量名称不可重复
3. 常量
变量是可以修改,变更的值,而常量是不可改变的值,用const声明
3.1 常量的声明
// const 定义一个常量 * 最常用
const A = "TEST1"
fmt.Println(A)
// 定义多个常量
const (
B = "TEST2"
C = "TEST3"
D = "TEST4"
)
fmt.Println(B, C, D)
// 定义多个常量,给定一个值
const (
E = "TEST5"
F
G // 值默认与上一个相同
H = "TEST6"
I // 值默认与上一个相同
)
fmt.Println(E, F, G, H, I)
复制代码
效果:
TEST1
TEST2 TEST3 TEST4
TEST5 TEST5 TEST5 TEST6 TEST6
复制代码
3.2 iota 自增长
iota为Go中的计数器,常与const结合使用
示例:
// iota 计数器使用
const (
n1 = iota // 0
n2 // 1
_ // 匿名跳过计数
n3 // 3
n4 = iota // 4
n5 // 5
n6 = 100 // 100 插队赋值
n7 = iota // 7
n8, n9, n10 = iota, iota, iota + 1 // 8,8,9 多变量声明iota不会计数叠加,
)
fmt.Println(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10)
复制代码
效果:
0 1 3 4 5 100 7 8 8 9
复制代码
4. 总结:Go常量变量命名规则
变量名必须由数字,字母,下划线_组成
标识符开头不能是数字
标识符不能是生存字和关键字(var、if、where等)
变量的名字是严格区分大小写的,name、Name、NAme以及NAME是差别的四个变量。Go语法支持,但不推荐如许写。
变量界说尽可能见名思意
变量名一般接纳驼峰命名法。驼峰命名:首字母小写,后续每个单子首字母大写,例如:maxAge。如果是专属名词,例如DNS,IP等,可直接接纳大写。
上一篇:Golang学习历程【第一篇 入门】
下一篇:Golang学习历程【第三篇 基本数据类型】 待续。。。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4