[Go] Grammaire de base ② Instruction

J'ai fini de regarder l'édition "déclaration" du cours udemy, donc je vais résumer et regarder en arrière.

Cette fois aussi, j'ai appris le fonctionnement de base en sortant sur la console.

supposition

・ Apprenez le Go en regardant [Introduction à Go enseignée par des ingénieurs actifs de la Silicon Valley + Développement de l'application Bitcoin Systre Fintech par application]](https://www.udemy.com/course/go-fintech/) Pendant ~

・ L'environnement de développement est VS Code + plug-in (la version Go est la 1.15) ・ Le système d'exploitation est Windows ・ J'utilise généralement Java.

instruction if / instruction switch

-La méthode d'écriture est similaire à java. -Si vous mettez des parenthèses dans l'instruction conditionnelle de l'instruction if, une erreur se produira. (Même si vous écrivez des parenthèses comme habitude, VSCode supprimera automatiquement les parenthèses.)

pour déclaration

-L'instruction for peut être écrite de la même manière que java. -Il est plus facile à décrire en utilisant "range".

En comparant mes propres réponses aux exercices donnés dans le cours avec des exemples de réponses, j'ai trouvé la différence entre une description comme java et une description utilisant range. Les deux donnent le même résultat, mais l'utilisation de la gamme est plus propre. Étant donné que range peut également gérer les cartes, cela semble être utile pour les applications.


Problème: écrivez le code pour trouver le plus petit nombre parmi les tranches ci-dessous et sortez-le.

l := []int{100, 300, 23, 11, 23, 2, 4, 6, 4}

Ma réponse


 l := []int{100, 300, 23, 11, 23, 2, 4, 6, 4}
    min := l[0]
    for i := 0; i < len(l); i++ {
        if min >= l[i] {
            min = l[i]
        }
    }
 fmt.Println(min)

Exemple de réponse


 l := []int{100, 300, 23, 11, 23, 2, 4, 6, 4}
 
    var min int
 
    for i, num := range l {
        if i == 0 {
            min = num
            continue
        }
 
        if min >= num {
            min = num
        }
    }
 
 fmt.Println(min)

defer -Le traitement décrit dans différer est exécuté une fois le traitement de la fonction terminé. -Pratique à utiliser pour fermer des fichiers. -Il est exécuté dans un style de pile. (Le processus décrit au début est exécuté à la fin.)

Exemple: sortie du contenu du fichier vers la console


package main

import (
	"fmt"
	"os"
)

func main() {
    file, _ := os.Open("./lesson.go")
	//Le fichier doit toujours être fermé. Si vous l'écrivez d'abord en différé, vous n'oublierez pas de le fermer.
	defer file.Close()

	//Lors de la lecture d'un fichier, il est nécessaire de préparer un tableau d'octets en tant que données.
	data := make([]byte, 100)
	file.Read(data)
	//Cast en chaîne
	fmt.Println(string(data))

}

Journal

-La bibliothèque standard (log) ne peut sortir que le journal minimum. -Si vous avez besoin de journaux détaillés, utilisez une bibliothèque tierce. -Dans Fatalln (), le traitement est interrompu de force à ce stade, donc le traitement ultérieur n'est pas effectué.

Fonction de sortie de journal typique


    log.Println("logging!")
    log.Printf("%T %v", "test", "test")
	
	log.Fatalln("error!") //À ce stade, le court est terminé.
    log.Fatalf("%T %v", "test", "test") //Non exécuté

La gestion des erreurs

-Gérer avec if au lieu de try-catch. -Il n'est pas recommandé de décrire la panique (exception) dans le programme. Il est recommandé de gérer l'erreur reçue avec une instruction if.

Impressions

-Pratique car vous pouvez effectuer un traitement commun (opération d'arrangement, fermeture de fichier, sortie de journal) avec une brève description. ・ La difficulté est élevée car vous devez comprendre avec précision le comportement de la fonction et la description recommandée. -Il semble y avoir une limite aux fonctions de la bibliothèque standard pour effectuer des traitements compliqués.



Dernier message

Grammaire de base ① Définition

Recommended Posts

[Go] Grammaire de base ② Instruction
[Go] Grammaire de base ① Définition
[Go] Grammaire de base ③ Pointeur
Grammaire de base Python3
Grammaire de base Python (divers)
Mémo de grammaire de base Python
Instruction if de base Python
Un expert Ruby a appris la grammaire de base du langage Go
Grammaire de base du système Python3 (quelques itérations de Python)
Installation de Python et grammaire de base
Mémo de grammaire de base Python (1)
Grammaire de base Python (divers) Mémo (3)
Grammaire de base Python (divers) Mémo (2)
Grammaire de base Python pour les débutants
J'ai appris la grammaire de base de Python
Grammaire de base Python (divers) Mémo (4)
Installation de Python (Python 3.7.7) et grammaire de base
Comparaison de la grammaire de base entre Java et Python
Introduction à Ansible Partie 2 'Grammaire de base'
À propos du type de base de Go
Grammaire de base du système Python3 (dictionnaire)
Comparer la grammaire de base de Python et Go d'une manière facile à comprendre
[Grammaire de base] Différences entre Ruby / Python / PHP
[Python] J'ai personnellement résumé la grammaire de base.
Grammaire de base de la série Python3 (chaîne de caractères)
Grammaire de base de la série Python3 (liste, tapple)
Grammaire de base du système Python3 (notation incluse)