Golang笔记(一)

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}
}

 

本文作者:𝙕𝙆𝘾𝙊𝙄

文章名称:Golang笔记(一)

文章链接:https://www.zkcoi.com/365up/program/2710.html

本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
𝙕𝙆𝘾𝙊𝙄𝙕𝙆𝘾𝙊𝙄
上一篇 2023年6月13日 下午7:28
下一篇 2023年6月30日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

私聊博主

立即联系
一般有空就回复

qrcode_web

微信扫码联系我

分享本页
返回顶部