Получить значение хранится по адресу - PullRequest
0 голосов
/ 20 октября 2018

Я начинаю изучать 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)

}

1 Ответ

0 голосов
/ 20 октября 2018

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

Microsoft: GetComputerNameW

...