如何定义返回地图的函数

时间:2017-03-29 14:01:37

标签: function dictionary go

我正在尝试定义一个返回初始化地图的函数:

package main

import "fmt"
import "os"

func defaults() map {
  m := make(map[string]string)
  m["start"] = "1"
  m["from"]  = "encrypted"
  m["to"]    = "loaded"
  return m
}

func main() {
  args := os.Args[1:]
  fmt.Println(args)
  runvals := defaults()
  fmt.Println(runvals)
}

我得到的错误:

Line 6 col 21 error| expected '[', found '{'
Line 7 col 5 error| expected ']', found ':='
Line 11 col 3 error| expected declaration, found 'return'

有人可以帮助我正确理解语法吗?或者我想做一些Go不会做的事情?

2 个答案:

答案 0 :(得分:2)

您需要声明整个类型,包括键和值类型。

func defaults() map[string]string {
    …
}

答案 1 :(得分:0)

func defaults() map[string] string {
    m := make(map[string]string)
    m["start"] = "1"
    ...
    return m
}

默认函数的问题是返回类型映射没有类型。