当前位置: 首页 > 面试题库 >

golang地图打印混乱

劳麒
2023-03-14
问题内容

为什么地图打印混乱,如何使它秩序井然?

package main

import (
    "fmt"
)

type monthsType struct {
    no   int
    text string
}

var months = map[int]string{
    1:"January", 2:"Fabruary", 3:"March", 4:"April", 5:"May", 6:"June",
    7:"July", 8:"August", 9:"September", 10:"October", 11:"Novenber", 12:"December",
}

func main(){
    for no, month := range months {
        fmt.Print(no)
        fmt.Println("-" + month)
    }
}

打印输出:

10-October
7-July
1-January
9-September
4-April
5-May
2-Fabruary
12-December
11-Novenber
6-June
8-August
3-March

问题答案:

码:

func DemoSortMap() (int, error) {
    fmt.Println("use an array to access items by number:")
    am := [2]string{"jan", "feb"}
    for i, n := range am {
        fmt.Printf("%2d: %s\n", i, n)
    }
    fmt.Println("maps are non-sorted:")
    mm := map[int]string{2: "feb", 1: "jan"}
    for i, n := range mm {
        fmt.Printf("%2d: %s\n", i, n)
    }
    fmt.Println("access items via sorted list of keys::")
    si := make([]int, 0, len(mm))
    for i := range mm {
        si = append(si, i)
    }
    sort.Ints(si)
    for _, i := range si {
        fmt.Printf("%2d: %s\n", i, mm[i])
    }

    return 0, nil
}

(其中大部分是从萨默菲尔德先生的书中偷走的)

输出:

use an array to access items by number:
 0: jan
 1: feb
maps are non-sorted:
 2: feb
 1: jan
access items via sorted list of keys::
 1: jan
 2: feb


 类似资料:
  • 问题内容: 我正在尝试打印地图的类型,例如:map [int] string 所以如果我这样做: 我想得到 但我找不到正确的电话。 问题答案: 尽量不要使用。但是,如果您必须使用: 甲值具有函数,该函数返回一个值。 如果该类型为,则这是某些类型T1和T2 的type值,其中T1是键类型,T2是元素类型。 因此,在使用时,我们可以像这样将片段分开: 在Go Playground上查看更完整的示例 。

  • 我正在寻找一种漂亮的方法来打印地图。 <代码>贴图。toString()给我:

  • 问题内容: 我正在寻找一种漂亮地打印的好方法。 给我: 我希望地图输入值具有更大的自由度,并且正在寻找更多类似这样的东西: 我写了这段代码: 但是我敢肯定,有一种更优雅,更简洁的方法可以做到这一点。 问题答案: 或将您的逻辑放在一个整洁的小班上。 用法: 注意:您也可以将该逻辑放入实用程序方法中。

  • 问题内容: 我对gdb无法正确打印变量有疑问。通过以下方式构建简单程序: 然后执行gdb: 这是我下一步要做的: 您可以看到在检查’p’变量时存在Python异常,而在显示’i’值时完全没有3。怎么了 ? 这是我去的版本 和gdb配置 问题答案: 添加到@AlexAtNet的答案中,Go 1.2.x之后的所有内容都中断了GDB支持,因此请使用go 1.2.x进行调试或使用gccgo(请记住,gcc

  • 问题内容: 我很好奇为什么只在var上打印内存地址就可以直接使用,但是尝试通过接口执行相同的操作却不能打印出内存地址? https://play.golang.org/p/Ko8sEVfehv 只是想在修复错误后添加它,它现在可以正常运行。测试移位内存指针 https://play.golang.org/p/BnB14-yX8B 问题答案: 因为在方法第二种情况下: 不是一个而是一个结构,是类型的

  • 我正在解组一个结构,我希望它以格式化的方式打印它。 我的代码(https://play.golang.org/p/D0KwGP6Cxa0)当前生成以下输出: 我希望它只有名称和值,并在每个项目后有一个新行。例如: 你知道我该怎么做吗?