去,不要获得字符串值

时间:2015-10-22 21:36:39

标签: go

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {

    // Just count the files...
    systems,_ := ioutil.ReadDir("./XML")
    fmt.Printf("# of planetary systems\t%d\r\n", len(systems))

    // For each datafile
    for _,element := range systems {
        fmt.Println(element.Name)
    }

}

这一行...

fmt.Println(element.Name)

输出内存地址而不是我假设的文件名字符串。为什么?我如何获得实际的字符串?感谢。

同样所有的地址都是一样的,我希望它们不同,这意味着我的for-each循环可能会被破坏。

1 个答案:

答案 0 :(得分:3)

FileInfo.NameFileInfo接口的函数;正在打印函数的内存地址。要显示文件名,您需要在打印前评估该功能:

for _, element := range systems {
    fmt.Println(element.Name())
}