Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Can';t在字符串映射中使用字符串的基础类型:";无法使用<;xxx>;(键入<;yyy>;)作为映射索引中的类型字符串;_String_Go - Fatal编程技术网

String Can';t在字符串映射中使用字符串的基础类型:";无法使用<;xxx>;(键入<;yyy>;)作为映射索引中的类型字符串;

String Can';t在字符串映射中使用字符串的基础类型:";无法使用<;xxx>;(键入<;yyy>;)作为映射索引中的类型字符串;,string,go,String,Go,我有基本类型的字符串:类型功能字符串 我想将其用作字符串映射中的字符串,但我遇到了一个错误: 无法将cap(类型功能)用作映射索引中的类型字符串 这是我的代码: package main import ( "fmt" ) type Capability string var caps_list = map[string]int { "HOME" : 1, } func main() { var cap Capability // string cap =

我有基本类型的字符串:
类型功能字符串

我想将其用作字符串映射中的字符串,但我遇到了一个错误:

无法将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]))
}  
为什么它不接受呢?它毕竟是一根弦

您可以在此处尝试我的代码:

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


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

只需更改为在cap上使用
字符串即可:

fmt.Print(string(caps_list[string(cap)]))  

您的地图具有
string
类型的键,因此您必须使用
string
,而不是
Capability
。这很容易,因为您可以将功能转换为字符串。@Volker如何转换?使用strconv
strconv
?没有看到执行此操作的选项。我也尝试了字符串(cap),但我遇到了其他错误