💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 结构体知识小问题 * * * * * --: 作者:Mick 时间:2018年10月17日 * * * * * ``` // 结构体声明的字段是否可以重复 type User struct{ name string name string } // 结构体声明的方法是否可以重复 type User struct{ } func(u User) Say(){} func(u User) Say(){} // 结构体声明的字段和方法是否可以重名 type User struct{ Say string } func(u User) Say(){} //嵌入字段的字段是否可以和外部类型的字段重名 type User struct{ name string } type admin struct{ User name string } //嵌入字段的方法是否可以和外部类型的方法重名 type User struct{ name string } func(u User) Say(){} type Admin struct{ User name string } func(a Admin) Say(){} //嵌入字段的字段是否可以和外部类型的方法重名 type User struct{ name string } type Admin struct{ } func(a Admin) name(){ } //值接收者和指针接收者的区别 type ip []byte func(i ip) push(v byte){ } func(i *ip) pop(v byte){ } // 结构体不能以包含此方法的方式传递 B类型的变量不能赋值给A变量 b := B{} getA(b) type A struct{ age int } type B struct{ A Name string } func getA(a A){ fmt.Println(a) } ``` # 结构体 * * * * * --: 作者:jsh 时间:2018年9月9日 * * * * * GO语言是一种静态类型的编程语言。这意味着,编译器需要在编译时知晓程序里每个值的类型。如果提前知道类型信息,编译器就可以确保程序合理地使用值。这有助于减少潜在的内存异常和bug,并且是编译器有机会对代码进行一些性能优化,提高执行效率。 ### struct GO语言允许用户定义类型。最常用的方法是使用strut,它可以让用户创建一个结构类型。 **结构类型通过组合一系列固定且唯一的字段来声明。** 声明一个结构类型 ~~~ type user struct{ name string email string age int } ~~~ 使用结构类型声明变量,并初始化其零值 ~~~ var person user ~~~ 任何时候,创建一个变量并初始化为其零值,习惯是使用关键字var。这种用法是为了更明确地表示一个变量被设置为零值。如果变量被初始化为某个零值,就配合结构字面量和短变量声明操作符来创建变量。 使用结构字面量来声明一个结构类型的变量 ~~~ fuzz := user{ name : "fuzz", email : "fuzz@fuzz.com", age : 18, } ~~~ 不使用字段名,创建结构类型的值 ~~~ fuzz := user{"fuzz","fuzz@fuzz.com",18} ~~~ 使用其它结构类型声明字段 ~~~ type admin struct{ person user level true } jsh := admin{ person : user{ name : "jsh", email : "jsh@jsh163.com", age : 18 }, level : true } ~~~ ### 明天考试 1.以下结果会输出什么? package main import "fmt" func main() { fmt.Println("1"+1) } 2.切片和数组的显著差异是什么? 4.编译执行下面代码会出现什么? package main import "fmt" func main() { s1 := []int{1, 2, 3} s2 := []int{4, 5} s1 = append(s1, s2) fmt.Println(s1) } 4.编译执行下面代码会出现什么? package main import "fmt" func main() { intmap:=map[int]string{ 1:"a", 2:"bb", 3:"ccc" } fmt.Println(intmap) } 5.倒叙乘法口诀表 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 1×4=4 2×4=8 3×4=12 4×4=16 1×3=3 2×3=6 3×3=9 1×2=2 2×2=4 1×1=1