Maison > développement back-end > Golang > Obtenez par programme la version de macOS en utilisant Golang

Obtenez par programme la version de macOS en utilisant Golang

WBOY
Libérer: 2024-02-09 08:06:07
avant
465 Les gens l'ont consulté

使用 golang 以编程方式获取 macOS 版本

l'éditeur php Banana vous apprend à utiliser la programmation golang pour obtenir la version macOS. Que vous développiez des applications macOS ou que vous effectuiez une administration système, il est important de connaître la version actuelle de votre système d'exploitation. Grâce à la programmation Golang, nous pouvons facilement obtenir les informations de version de macOS. Cet article explique comment utiliser Golang pour écrire du code afin d'obtenir la version macOS et comment exécuter le code sur le terminal pour afficher les résultats. Explorons ensemble ce sujet amusant et pratique !

Contenu de la question

Je souhaite obtenir la version macOS en golang. Je voulais principalement vérifier si macOS est >= Big Sur.

Trouvez le package goInfo. Mais il ne fournit pas les détails requis. J'ai essayé le package syscall mais la solution ne fonctionne que sous Linux.

Merci pour toute aide.

Solution

Utilisez unix.uname pour obtenir la distribution Darwin. D'après l'historique des versions de darwin, la version darwin correspondante de big sur est 20.x.x.

Voir la démo ci-dessous :

package main

import (
    "fmt"
    "strconv"
    "strings"

    "golang.org/x/sys/unix"
)

func main() {
    var uts unix.utsname
    if err := unix.uname(&uts); err != nil {
        panic(err)
    }

    sysname := unix.byteslicetostring(uts.sysname[:])
    release := unix.byteslicetostring(uts.release[:])

    fmt.printf("sysname: %s\nrelease: %s\n", sysname, release)

    if sysname == "darwin" {
        dotpos := strings.index(release, ".")
        if dotpos == -1 {
            fmt.printf("invalid release value: %s\n", release)
            return
        }

        major := release[:dotpos]
        majorversion, err := strconv.atoi(major)
        if err != nil {
            fmt.printf("invalid release value: %s, %v\n", release, err)
            return
        }
        fmt.println("macos >= big sur:", majorversion >= 20)
    }
}
Copier après la connexion

Sortie sur mon ordinateur :

sysname: Darwin
release: 22.3.0
macOS >= Big Sur: true
Copier après la connexion

Référence : //m.sbmmt.com/link/ec47951a847319d0dd4933431b5b2c0f

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal