``` go
package main
func main() {
m := make(map[string]int, 0)
m["a"] = 1
m["b"] = 2
if value, ok := m["a"]; ok {
println(value)
}
if value, ok := m["c"]; ok {
println(value)
}
value := m["c"]
println(value)
//------------------------------------
var interf interface{}
interf = 1
if t, ok := interf.(int); ok {
println(t)
}
str := interf.(string)
println(str)
//------------------------------------
var s = []int{1,2,3,4}
println(s[0]) // 's[索引]' 这种取值方式我能否自己实现某个接口从而实现这样的取值方式?
}
```
**谢谢各位大佬,能给我解答一下吗?**
- ##### **为什么map取值的时候,返回值可以只有1个,也可以有2个?**
- ##### **为什么断言,返回值可以只有1个,也可以有2个 **
- ##### **我自己能实现这样的函数吗? **
- ##### **切片的截取取值方式,我能否自定义类型然后以实现接口的方式让我的自定义类型拥有通过`[]`取值? **