下面赋值正确的是()
A. var x = nil
B. var x interface{} = nil
C. var x string = nil
D. var x error = nil
答案:BD
关于整型切片的初始化,下面正确的是()
A. s := make([]int)
B. s := make([]int, 0)
C. s := make([]int, 5, 10)
D. s := []int{1, 2, 3, 4, 5}
答案:BCD
从切片中删除一个元素,下面的算法实现正确的是()
A.
func (s *Slice) Remove(value interface{}) error {
for i, v := range *s{
if isEqual(value, v) {
if i == len(*s) - 1 {
*s = (*s)[:i]
}else {
*s = append((*s)[:i], (*s)[i + 2:]...)
}
return nil
}
}
return ERR_ELEM_NT_EXIST
}
B.
func (s *Slice) Remove(value interface{}) error {
for i, v := range *s {
if isEqual(value, v) {
*s = append((*s)[:i], (*s)[i + 1:])
return nil
}
}
return ERR_ELEM_NT_EXIST
}
C.
func (s *Slice) Remove(value interface{}) error {
for i, v range *s {
if isEqual(value, v) {
delete(*s, v)
return nil
}
}
return ERR_ELEM_NT_EXIST
}
D.
func (s *Slice) Remove(value interface{}) error {
for i, v := range *s {
if isEqual(value, v) {
*s = append((*s)[:i], (*s)[i + 1:]...)
return nil
}
}
return ERR_ELEM_NT_EXIST
}
答案:D
对于局部变量类型切片X的赋值,下面定义正确的是()
A.
x := []int{
53, 1, 2, 3,
54, 4, 5, 6,
}
B.
x := []int{
1, 2, 3,
4, 5, 6
}
C.
x := []int{
1, 2, 3,
4, 5, 6}
D.
x := []int{1, 2, 3, 4, 5, 6,}
答案:ACD
关于变量的自增和自减操作,下面语句正确的是()
A.
i := 1
i++
B.
i := 1
j = i++
C.
i := 1
++i
D.
i := 1
i--
答案:AD
关于函数声明,下面语法错误的是()
A.
func f(a, b int) (value int, err error)
B.
func f(a int, b int) (value int, err error)
C.
func f(a, b int) (value int, error)
D.
func f(a int, b int) (int, int, error)
答案:C
如果Add函数的调用代码为:
func main() {
var a Integer = 1
var v Integer = 2
var i interface{} = &a
sum := i.(*Integer).Add(b)
fmt.Println(sum)
}
则Add函数定义正确的是()
A.
type Integer int
func (a Integer) Add(b Integer) Integer {
return a+b
}
B.
type integer int
func (a Integer) Add(b *Integer) Integer {
return a+*b
}
C.
type Integer int
func (a *Integer) Add(b Integer) Integer {
return *a+b
}
D.
type Integer int
func (a *Integer) Add(b *Integer) Integer {
return *a + *b
}
答案:AC
如果Add函数的调用代码为:
func main() {
var a Integer = 1
var b Integer = 2
var i interface{} = a
sum := i.(Integer).Add(b)
fmt.Println(sum)
}
则Add函数定义正确的是()
A.
type Integer int
func (a Integer) Add(b Integer) Integer {
return a+b
}
B.
type Integer int
func (a Integer) Add(b Integer) Integer {
return a+*b
}
C.
type Integer int
func (a *Integer) Add(b *Integer) Integer {
return *a+b
}
D.
type Integer int
func (a *Integer) Add(b *Integer) Integer {
return *a+*b
}
参考答案:A
关于GetPodAction定义
type Fragment interface {
Exec(transInfo *TransInfo) error
}
type GetPodAction struct {
}
func (g GetPodAction) Exec(transInfo *TransInfo) error {
...
return nil
}
下面赋值正确的是()
A. var fragment Fragment = new(GetPodAction)
B. var fragment Fragment = GetPodAction
C. var fragment Fragment = &GetPodAction{}
D. var fragment Fragment - GetPodAction{}
答案:ACD