gpt4 book ai didi

go - 将结构映射到go中的函数

转载 作者:数据小太阳 更新时间:2023-10-29 03:39:34 24 4
gpt4 key购买 nike

import (
"net/url"
)

type Route struct{
filepath string
url url.URL
}

func hello(){
fmt.Println("Hello World")
}

func main() {

routes := map[Route]func{
Route{url.Parse("/home"), "/var/www/index.html"} : hello
}

}

我无法弄清楚是什么语法错误阻止我将 Route 结构映射到函数。

我收到这个错误:

./main.go:24:26: syntax error: unexpected {, expecting (

./main.go:25:8: syntax error: unexpected {, expecting comma or )

最佳答案

  1. 类型不是func而是func()
  2. 你需要处理url.Parse的错误

有重构代码:

package main

import (
"fmt"
"net/url"
)

type Route struct {
filepath string
url *url.URL
}

func hello() {
fmt.Println("Hello World")
}

func mustParse(rawURL string) *url.URL {
parsedURL, err := url.Parse(rawURL)
if err != nil {
panic(err)
}
return parsedURL
}

func main() {

routes := map[Route]func(){

Route{"/var/www/index.html", mustParse("/home")}: hello,
}

fmt.Printf("routes: %+v\n", routes)

}

如果您不知道输入配置, panic 解决方案可能不是最好的。

关于go - 将结构映射到go中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54135939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com