Six mois après avoir appris Ruby, je voulais apprendre une autre langue, alors j'ai un peu touché Go.
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
}
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
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.
Apprenez la grammaire de base de Go Apprenez le golang à partir des bases: structure de contrôle
Recommended Posts