Un expert Ruby a appris la grammaire de base du langage Go

Aperçu

Six mois après avoir appris Ruby, je voulais apprendre une autre langue, alors j'ai un peu touché Go.

Différence entre Ruby et Go (FizzBuzz)

Lors de la résolution du problème FizzBuzz avec Ruby, il existe différentes manières de l'écrire, comme for, while, mais cette fois je l'ai écrit avec la méthode times.

fizzbuzz.rb


1..100.times do |i|
    if i%15==0
        puts "FizzBuzz"
    elsif i%3==0
        puts "Fizz"
    elsif i%5==0 
        puts "Buzz"
    else
        puts i
    end
end

Lorsqu'il est écrit en Go, il est devenu comme suit.

fizzbuzz.go


package main

import (
	"fmt"
)

func main() {
	for i := 0; i < 100; i++ {
		if i%5 == 0 && i%3 == 0 {
			fmt.Println("Fizz Buzz")
		} else if i%3 == 0 {
			fmt.Println("Fizz")
		} else if i%5 == 0 {
			fmt.Println("Buzz")
		} else {
			fmt.Println(i)
		}
	}
}

Même si je faisais un programme simple, il y avait des différences par rapport à Ruby, alors j'ai essayé de le résumer moi-même.

--A propos du package --À propos de l'importation --À propos du traitement itératif -À propos: =

package

Dans Go, les éléments de programmation appartiennent à une sorte de package et vous devez déclarer le package. Quand j'ai créé un fichier vide et lancé «go run test.go», j'ai eu une erreur telle que «attendu» paquet », trouvé« EOF ».

Par conséquent, s'il n'y a pas de package ou de fonction principale comme indiqué dans le code ci-dessous, une erreur se produira lors de l'exécution.

test.go


package main

func main() {

}

import Dans Go, si vous utilisez une fonction qui n'est pas écrite dans le package principal, vous devez décrire le nom du package qui a cette fonction. Ceci est une image comme la «bibliothèque standard» dans la bibliothèque Ruby.

Pour Ruby

standard_library.rb


require 'Time'
p Time.strptime('2020-03-21T01:58:30+09:00', '%Y-%m-%dT%H:%M:%S%z') 
# -> 2020-03-21 01:58:30 +0900

Pour aller

hello.go


package main
import("fmt")


func main() {
	fmt.Println("Hello World")
	// -> Hello World
}

Traitement itératif

Dans Ruby, il existe différentes manières d'écrire pour, pendant, des heures, etc. lors d'un traitement itératif. Dans Go, seule l'instruction for est utilisée pour le traitement itératif.

Cependant, il est également possible d'écrire comme foreach comme indiqué ci-dessous.

foreach.go


package main

import (
	"fmt"
)

func main() {
	fruits := map[string]string{
		"apple": "pomme",
		"banana": "banane",
		"pineapple": "ananas",
	}
	for key, value := range fruits {
		fmt.Println("key:", key, " value:", value)
	}
}

// key: apple  value:pomme
// key: banana  value:banane
// key: pineapple  value:ananas

À propos: =

Lorsque vous définissez explicitement une variable avec go, décrivez comme suit.

variable.go


package main

import ("fmt")

func main() {
	var x,y,z int
	x = 1
	y = 2
	z = 3

	fmt.Println(x)
	fmt.Println(y)
	fmt.Println(z)
}

// 1
// 2
// 3

Cependant, il est également possible de définir implicitement une variable, auquel cas ce sera comme suit.

variable.go


package main

import ("fmt")

func main() {
	x := 1
	y := 2
	z := 3

	fmt.Println(x)
	fmt.Println(y)
	fmt.Println(z)
}

// 1
// 2
// 3

Puisque vous pouvez omettre la spécification de type, écrire ici peut améliorer l'efficacité du développement.

Matériel de référence

Apprenez la grammaire de base de Go Apprenez le golang à partir des bases: structure de contrôle

Recommended Posts

Un expert Ruby a appris la grammaire de base du langage Go
À propos du type de base de Go
Comparer la grammaire de base de Python et Go d'une manière facile à comprendre
[Go] Grammaire de base ① Définition
[Go] Grammaire de base ② Instruction
[Go] Grammaire de base ③ Pointeur
Caractéristiques du langage Go
J'ai appris la grammaire de base de Python
J'ai écrit la grammaire de base de Python dans Jupyter Lab
Grammaire de base du système Python3 (dictionnaire)
[GO language] Organisez le comportement de l'importation dans des endroits autres que GOPATH
Ce que les utilisateurs de Java ont pensé d'utiliser le langage Go pendant une journée
[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)
Cours de base Python (à la fin de 15)
Grammaire de base du système Python3 (notation incluse)
Ce que vous voulez mémoriser avec la grammaire de base de "manipulation de chaînes" de python
Tweetez régulièrement avec l'API Twitter Go language
Bonjour tout le monde avec toutes les fonctionnalités du langage Go
Spécification de la plage des tableaux ruby et python
Ceci est le seul examen de base de Python ~ 1 ~
Ceci est le seul examen de base de Python ~ 2 ~
Ceci est le seul examen de base de Python ~ 3 ~
Comparaison de Python et Ruby (Environment / Grammar / Literal Edition)
Résumé du début au chapitre 1 de l'introduction aux modèles de conception appris en langage Java
L'histoire du portage du code de C vers Go (et vers la spécification du langage)