Go语言基础知识代码示例 | 青训营笔记

59 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

package main

import "fmt"

type Book struct {
	title   string
	author  string
	profile string
}

func setBookInfo(title string, author string, profile string) Book {
	var book Book
	book.author = author
	book.profile = profile
	book.title = title
	return book
}

func setBookProfile(book *Book, profile string) {
	book.profile = profile
}

func main() {

	/**
	var int1 int = 1
	var str1 string = "2"
	var str2 = "fuck you"
	valid := false
	url := "String=%s,Int=%d"
	target := fmt.Sprintf(url, str2, int1)
	fmt.Println(int1)
	fmt.Println(str1)
	fmt.Print(reflect.TypeOf(str2))
	fmt.Println(str2)
	fmt.Println(valid)
	fmt.Printf(url, str2, int1)
	fmt.Printf(target)
	*/

	/**



	var list [2]int
	list[0] = 1
	list[1] = 2
	for i := 0; i < 2; i++ {
		fmt.Print(list[i])
	}

	fmt.Println("数组")

	var list2 = [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
	for key, value := range list2 {
		fmt.Print(key)
		fmt.Println(value)
		fmt.Println(list2[key])
	}

	*/

	/**

	fmt.Println("Slice切片")

	var slice1 []int
	var slice2 []int = make([]int, 0) //int后两个参数,第一个为初始长度,第二个为最大长度,append会在初始值后添加
	slice1 = append(slice1, 1)
	slice1 = append(slice1, 2)
	slice2 = append(slice2, 3)
	slice2 = append(slice2, 4)
	slice2 = append(slice2, 5)
	for v := range slice1 {
		fmt.Print(slice1[v])
	}
	for v := range slice2 {
		fmt.Print(slice2[v])
	}


	*/

	/**

	fmt.Println("Map集合")
	//泛型
	type map1[Key int | string, Value string | float64] map[Key]Value

	var map2 = make(map[string]string)
	//var map2 map[string]string = make(map[string]string)
	map2["German"] = "Berlin"
	map2["France"] = "Paris"

	for s, s2 := range map2 {
		fmt.Println(s + "\t" + s2)
	}

	var map3 = make(map1[string, string])
	//	var map3 map1[string, string] = make(map1[string, string])
	map3["Italy"] = "Roma"
	map3["England"] = "London"

	for s, s2 := range map3 {
		fmt.Println(s + "\t" + s2)
	}

	fmt.Println("指针")
	var a = 10
	var ap = &a
	fmt.Printf("The Address of a is: %v The address of ap is: %v The value of ap is %v The value of a is %v", &a, &ap, ap, *ap)

	*/

	fmt.Println("结构体")
	var book1 Book = setBookInfo("安徒生童话", "安徒生", "...")
	fmt.Println(book1)
	setBookProfile(&book1, "这是安徒生童话")
	fmt.Println(book1)
	var bp *Book = &book1
	fmt.Println(bp)
	fmt.Println(bp.title)
	fmt.Println(*bp)
}