Golang笔记(一)
package main //必须指定一个包名,声明属于该包
import "fmt"
func main() {
fmt.Printf("打印 %s:", Hello_World()) //格式化打印,第一个参数必须是包含占位符的格式
learn_var()
placeholder()
}
func Hello_World() string { //必须声明return值的类型否则报错
return "Hello, World!"
}
func learn_var() {
var name string = "baba" //单个声明
var ( //多个声明
age int = 34
pName *string
pAge *int
)
pName = &name
pAge = &age
fmt.Printf("Name: %s, Age: %d\n", name, age)
fmt.Println("Name: "+name+", Age: ", age)
fmt.Println("Name: ", name, ", Age: ", age)
fmt.Println("Name: ", &name, ", Age: ", &age)
/*
1.* 符号:
在声明变量时,* 可以作为类型的前缀,表示该变量是一个指针类型。例如:var pAge *int 声明了一个类型为 int 的指针变量 pAge。
在间接引用指针时,* 可以用作解引用运算符。通过 *pName,*pAge 可以访问指针 pName,pAge所指向的值。
2.& 符号:
用于获取变量的内存地址。例如:&say 返回变量 say 的内存地址。
可以将一个已经存在的变量通过 & 符号来获取它的指针,如&name,&age
*/
fmt.Printf("Name: %s, Age: %d, &name: %p, &age: %p, pName: %v, pAge: %v,*pName: %v,*pAge: %v\n", name, age, &name, &age, pName, pAge, *pName, *pAge)
//Name: baba, Age: 34, &name: 0xc00004c280, &age: 0xc0000160c0, pName: 0xc00004c280, pAge: 0xc0000160c0,*pName: baba,*pAge: 34
say := Hello_World //给函数Hello_World取了个别名say
fmt.Println("say:", &say, say, say(), Hello_World, Hello_World()) //say: 0xc00000a030 0xf7f920 Hello, World! 0xf7f920 Hello, World!
}
func placeholder() {
// 通用占位符
fmt.Printf("通用占位符:%v\n", 42)
// 类型占位符
fmt.Printf("类型占位符:%T\n", 3.14)
// 布尔值占位符
fmt.Printf("布尔值占位符:%t\n", true)
// 整数占位符
fmt.Printf("整数占位符:%d\n", 42)
fmt.Printf("二进制占位符:%b\n", 42)
fmt.Printf("八进制占位符:%o\n", 42)
fmt.Printf("十六进制占位符(小写):%x\n", 42)
fmt.Printf("十六进制占位符(大写):%X\n", 42)
// 浮点数占位符
fmt.Printf("浮点数占位符:%f\n", 3.14)
fmt.Printf("浮点数占位符(大写):%F\n", 3.14)
fmt.Printf("科学计数法表示的浮点数占位符:%e\n", 3.14)
fmt.Printf("科学计数法表示的浮点数占位符(大写):%E\n", 3.14)
// 字符串占位符
fmt.Printf("字符串占位符:%s\n", "Hello, World!")
// 指针占位符
value := 100
fmt.Printf("指针占位符:%p\n", &value)
// 宽度、精度、对齐等特性
fmt.Printf("宽度和精度:%10.2f\n", 3.14159) //%[宽度].[精度]f
fmt.Printf("左对齐:%-*s\n", 10, "Hello") // - 符号表示左对齐,* 标记表示宽度由后面的参数指定
fmt.Printf("右对齐:%*s\n", 10, "World")
fmt.Printf("左对齐:%10s\n", "Hello") //直接指定宽度
fmt.Printf("右对齐:%-10s\n", "World")
// 复杂类型的打印
person := struct {
Name string
Age int
}{
Name: "Alice",
Age: 25,
}
fmt.Printf("复杂类型的打印:%v\n", person) //复杂类型的打印:{Alice 25}
}
本文作者:ZKCOI
文章名称:Golang笔记(一)
文章链接:https://www.zkcoi.com/365up/program/2710.html
本站资源仅供个人学习和交流,如若转载,请注明出处,详见《免责声明》。
微信扫一扫
支付宝扫一扫
