不能在字符串映射中使用底层类型的字符串:"cannot use <xxx> (type <yyy>) as type string in map index"

  • 本文关键字:type 字符串 xxx map index in string as yyy string go
  • 更新时间 :
  • 英文 :


我有底层类型的字符串: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)]))  

不,它不是一个字符串。它是一个类型,基类型是一个字符串。

所以确切的类型很重要。也不能将摄氏度添加到华氏度,即使这两种类型都具有整数基类型。

最新更新