Go 获取存储在地址中的值

Go 获取存储在地址中的值,go,memory-address,Go,Memory Address,我开始学习围棋,希望有人能帮我理解一些东西。如何读取syscall.GetcomputerName返回的地址处的值?我知道那个调用将把地址存储在变量y中。多谢各位 package main import "fmt" import "syscall" import "os" func main() { x, err := os.Hostname() y := syscall.GetComputerName if err != nil { fmt.Pri

我开始学习围棋,希望有人能帮我理解一些东西。如何读取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)

}
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
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

因为这是一个函数,所以它将是函数的地址。但这真的不是很有用。为什么不尝试调用该函数呢?正如我所说,我刚刚开始学习Go,不太确定如何在这个实例中进行添加,但它似乎需要两个参数,因此也必须提供参数。好的,有意义,我只是检查了定义,但不确定如何实现,或者我是否正确使用了它:func GetComputerNamebuf*uint16,n*uint32 error error{}@user7421969对不起,你想实现什么?我假设你需要得到你机器的计算机名信息,对吗?因为这是一个函数,它将是函数的地址。但这真的不是很有用。为什么不尝试调用该函数呢?正如我所说,我刚刚开始学习Go,不太确定如何在这个实例中进行添加,但它似乎需要两个参数,因此也必须提供参数。好的,有意义,我只是检查了定义,但不确定如何实现,或者我是否正确使用了它:func GetComputerNamebuf*uint16,n*uint32 error error{}@user7421969对不起,你想实现什么?我想你需要得到你机器的计算机名信息,对吗?谢谢你,彼得!你的例子很好地解释了这一点。谢谢你,彼得!你的例子很好地解释了这一点