问题描述
我以为今天我终于明白了什么是typealias。
我没有。
让我们看一个例子:
let paths = document.querySelectorAll("svg path")
paths.forEach(p=>{
let bb = p.getBBox()
p.setAttribute("transform",`translate(${-bb.x -bb.width/2 + 10},${-bb.y - bb.height/2 +10})`)
})
一切都很好。
然后我做了一个小改动:
typealias Graph = [String: [String]]
let futurama: Graph = [
"you": ["bender","hermes","scruffy"],"bender": ["hubert","zoidberh"],"hermes": ["hubert","amy","hubert": ["mom","fry"],"fry": ["leela"],"leela": ["brannigan","nibbler","amy": ["kif"],"brannigan": ["kif"],"zoidberh": [],"kif": [],"mom": [],"nibbler": [],"scruffy": []
]
extension Graph {
// Breadth First Search
func bfs(from start: String,to finish: String) -> [String]? {
// Implementation of this graph algorithm here
}
}
print(
futurama.bfs(from: "you",to: "scruffy")?.joined(separator: " --> ") ?? "There is no pass,sorry"
)
我期望现在let futurama: [String: [String]] = [
"you": ["bender",...
将不会编译,因为futurama.bfs()
没有方法futurama
。我在想,这是多么出色的语言设计!
但是我很失望。没有改变。完全没有该代码仍然可以编译和运行。
所以...
- 什么是typealias?
- 如何实现我期望的行为?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)