无法在字符串映射内使用字符串的基础类型:“无法使用 <xxx>(类型 <yyy>)作为映射索引中的”

我有字符串的基础类型:type Capability string。


我想将它用作字符串映射中的字符串,但出现错误:


不能使用 cap(类型 Capability)作为映射索引中的类型字符串


这是我的代码:


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


喵喵时光机
浏览 95回答 2
2回答

慕妹3146593

只需要更改为string在帽子上使用:fmt.Print(string(caps_list[string(cap)]))

慕尼黑5688855

不,它不是字符串。它是一种类型,其基本类型是字符串。所以确切的类型很重要。您也不能将摄氏度添加到华氏度,即使这两种类型都有整数基本类型。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go