我开始学习GO,希望有人能帮助我理解一些东西。如何读取syscall.GetcomputerName
返回的地址中的值?我知道该调用会将地址存储在变量y
中。谢谢
package main
import "fmt"
import "syscall"
import "os"
func main() {
x, err := os.Hostname()
y := syscall.GetComputerName
if err != nil {
fmt.Println(err)
}
fmt.Println(x)
fmt.Println(y)
}
答案 0 :(得分:4)
syscall.GetComputerName
是函数的地址。要执行syscall.GetComputerName
函数,请使用函数调用运算符()
。例如,在Windows上,
package main
import (
"fmt"
"syscall"
"unicode/utf16"
)
func ComputerName() (name string, err error) {
var n uint32 = syscall.MAX_COMPUTERNAME_LENGTH + 1
b := make([]uint16, n)
e := syscall.GetComputerName(&b[0], &n)
if e != nil {
return "", e
}
return string(utf16.Decode(b[0:n])), nil
}
func main() {
name, err := ComputerName()
if err != nil {
fmt.Println(err)
return
}
fmt.Println("ComputerName:", name)
}
输出:
ComputerName: PETER