我有底层类型的字符串:type Capability string
.
我想将其用作字符串映射中的字符串,但出现错误:
不能在映射索引中使用 cap(类型功能(作为类型字符串
这是我的代码:
package main
import (
"fmt"
)
type Capability string
var caps_list = map[string]int {
"HOME" : 1,
}
func main() {
var cap Capability // string
cap = "HOME"
fmt.Print(string(caps_list[cap]))
}
为什么它不接受它?毕竟它是一个字符串。
你可以在这里试试我的代码:
https://play.golang.org/p/r-h9Hu8_eoM
只需要更改以使用大写字母上的string
:
fmt.Print(string(caps_list[string(cap)]))
不,它不是一个字符串。它是一个类型,基类型是一个字符串。
所以确切的类型很重要。也不能将摄氏度添加到华氏度,即使这两种类型都具有整数基类型。