我具有字符串的基础类型: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
答案 0 :(得分:0)
否,它不是字符串。它是一种类型,其基本类型是字符串。
因此确切的类型很重要。即使这两种类型都具有整数基本类型,也不能将摄氏度添加到华氏度。
答案 1 :(得分:0)
只需更改为在上限上使用WITH cte (id, tag, child_id, parent) AS
(
SELECT id, tag, child_id, id
FROM demo
WHERE id NOT IN(SELECT child_id FROM demo WHERE child_id IS NOT NULL)
UNION ALL
SELECT demo.id, demo.tag, demo.child_id, cte.parent
FROM demo
JOIN cte
ON cte.child_id = demo.id
)
SELECT parent, tag
FROM cte
WHERE tag IS NOT NULL
UNION
SELECT id, tag
FROM demo
WHERE tag IS NOT NULL
ORDER BY parent, tag
:
string