在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
选择题【初级】下面属于关键字的是() 【初级】定义一个包内全局字符串变量,下面语法正确的是() 【初级】通过指针变量 p 访问其成员变量 name,下面语法正确的是() type Person struct { name string } func test(p *Person) { fmt.Println((*p).name) //取出指针 } func main() { demo := Person{name:"wang"} fmt.Println(demo.name) test(&Person{name:"Wu"}) // 指针传递后,给函数的变量要使用*取出指针 fmt.Println((&demo).name) // 本身为指针则可以使用.属性:(指针).name }
【初级】关于接口和类的说法,下面说法正确的是() 【初级】关于字符串连接,下面语法正确的是() 【初级】关于协程,下面说法正确是() 【中级】关于init函数,下面说法正确的是() 1、init函数用于包的初始化,如初始化包中的变量,这个初始化在package xxx的时候完成,也就是在main之前完成; 2、每个包可以拥有多个init函数, 每个包的源文件也可以拥有多个init函数; 3、同一个包中多个init函数的执行顺序是没有明确定义的,但是不同包的init函数是根据包导入的依赖关系决定的。 4、init函数不能被其他函数调用,其实在main函数之前自动执行的 关于import _ " "的说明 go对包导入非常严格,不允许导入不使用的包。但是有时候我们导入包只是为了做一些初始化的工作,这样就应该采用import _ " "的形式,如第II节的例程中我们采用了import _ " "的形式导入level1和level2包,这样就可以在只完成初始化,也不会报错
【初级】关于循环语句,下面说法正确的有() 【初级】关于类型转化,下面语法正确的是() type MyInt int B. C. D. 参考答案:C A没有类型转化, B 变量加() func main() { type MyInt int var i int= 1 var j MyInt = MyInt(i) fmt.Println(reflect.TypeOf(j),reflect.TypeOf(i),j) // main.MyInt int 1 }
【初级】关于局部变量的初始化,下面正确的使用方式是()
【初级】关于const常量定义,下面正确的使用方式是() const Pi float64 = 3.14159265358979323846 参考答案:ABD
【初级】关于布尔变量b的赋值,下面错误的用法是() 【中级】下面的程序的运行结果是() func main() { 参考答案:C defer 时间延迟函数
【初级】关于switch语句,下面说法正确的有() 【中级】 golang中的引用类型包括() golang中分为值类型和引用类型 值类型分别有:int系列、float系列、bool、string、数组和结构体 引用类型有:指针、slice切片、管道channel、接口interface、map、函数等 值类型的特点是:变量直接存储值 引用类型的特点是:变量存储的是一个地址,这个地址对应的空间里才是真正存储的值
【中级】 golang中的指针运算包括() 【初级】关于main函数(可执行程序的执行起点),下面说法正确的是() 【中级】下面赋值正确的是()
【中级】关于整型切片的初始化,下面正确的是()
【中级】关于函数声明,下面语法错误的是()
【中级】关于GetPodAction定义,下面赋值正确的是() package main import "fmt" type Common interface { Hello(name string) error } type Commons interface { HelloX(name string) error } type Person struct { name string } // 值拷贝是无法改变的 func (p Person) Hello(name string) error { p.name = name fmt.Println("接口实现函数",name) return nil } // 传入的是指针是可以改变传入值的属性的 func (p *Person) HelloX(name string) error { p.name = name fmt.Println("接口实现函数",name) return nil } func main() { demo := Person{name:"wang"} demo.Hello("Wu") fmt.Println(demo.name) // wang 说明结构体是值传递 var inter_demo Common b := Person{name:"li"} inter_demo = b inter_demo.Hello("Xing") fmt.Println(b.name) var inter_demo2 Commons c := &Person{name:"xxx"} inter_demo2 = c inter_demo2.HelloX("Change") fmt.Println(c.name) fmt.Println(inter_demo2.(*Person)) // 类型断言: x.(T) x为接口变量,T为类型 if person, err := inter_demo2.(*Person); err == true { // 由于HelloX使用的是指针所以需要使用*Person fmt.Println(person.name) } if person2, err := inter_demo.(Person); err == true{ fmt.Println(person2.name) } }
【中级】关于接口,下面说法正确的是() 只要两个接口拥有相同的方法列表(次序不同不要紧),那么它们就是等价的,可以相互赋值。 Go语言接口是否可以赋值,是在编译期就确定的。接口的查询是在运行期确定。 【初级】关于channel,下面语法正确的是() 【初级】关于同步锁,下面说法正确的是() 【中级】 golang中大多数数据类型都可以转化为有效的JSON文本,下面几种类型除外()
【初级】 flag是bool型变量,下面if表达式符合编码规范的是()
【初级】 value是整型变量,下面if表达式符合编码规范的是() 参考答案:AC 【中级】关于函数返回值的错误设计,下面说法正确的是() 【中级】关于异常设计,下面说法正确的是() 【中级】关于slice或map操作,下面正确的是() var s []int s =append(s,1) B. var mmap[string]int m[“one”]= 1 C. var s[]int s =make([]int, 0) s =append(s,1) D. var mmap[string]int m =make(map[string]int) m[“one”]= 1 参考答案:ACD Make只用来创建slice,map,channel。 其中map使用前必须初始化,一定要make才能使用。 append可直接动态扩容slice,而map不行,map在使用前必须初始化。 var m map[string]int = make(map[string]int) m[“one”] = 1 或者 var m map[string]int = map[string]int{“two”, 2} m[“one”] = 1
【中级】关于channel的特性,下面说法正确的是()
|
请发表评论