Sechs Monate nachdem ich Ruby gelernt hatte, wollte ich eine andere Sprache lernen, also berührte ich Go ein wenig.
Bei der Lösung des FizzBuzz-Problems mit Ruby gibt es verschiedene Möglichkeiten, es zu schreiben, z. B. für, while, aber dieses Mal habe ich es mit der times-Methode geschrieben.
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
Wenn es in Go geschrieben wurde, wurde es wie folgt.
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)
}
}
}
Selbst wenn ich ein einfaches Programm gemacht habe, gab es einige Unterschiede zu Ruby, also habe ich versucht, es selbst zusammenzufassen.
package
In Go gehören Programmierelemente zu einer Art Paket, und Sie müssen das Paket deklarieren. Als ich eine leere Datei erstellt und "go run test.go" ausgeführt habe, wurde ein Fehler wie "erwartetes" Paket "gefunden, gefunden" EOF ".
Wenn daher kein Paket oder keine Hauptfunktion vorhanden ist, wie im folgenden Code gezeigt, tritt zur Laufzeit ein Fehler auf.
test.go
package main
func main() {
}
import Wenn Sie in Go eine Funktion verwenden, die nicht im Hauptpaket geschrieben ist, müssen Sie den Namen des Pakets beschreiben, das diese Funktion hat. Dies ist ein Bild wie die "Standardbibliothek" in der Ruby-Bibliothek.
Für 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
Für Go
hello.go
package main
import("fmt")
func main() {
fmt.Println("Hello World")
// -> Hello World
}
In Ruby gibt es verschiedene Möglichkeiten, für, während, Zeiten usw. zu schreiben, wenn eine iterative Verarbeitung durchgeführt wird. In Go wird nur die for-Anweisung für die iterative Verarbeitung verwendet.
Es ist jedoch auch möglich, wie unten gezeigt wie foreach zu schreiben.
foreach.go
package main
import (
"fmt"
)
func main() {
fruits := map[string]string{
"apple": "Apfel",
"banana": "Banane",
"pineapple": "Ananas",
}
for key, value := range fruits {
fmt.Println("key:", key, " value:", value)
}
}
// key: apple value:Apfel
// key: banana value:Banane
// key: pineapple value:Ananas
Wenn Sie eine Variable explizit mit go definieren, beschreiben Sie Folgendes.
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
Es ist jedoch auch möglich, eine Variable implizit zu definieren. In diesem Fall ist dies wie folgt.
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
Da Sie die Typspezifikation weglassen können, kann das Schreiben hier die Entwicklungseffizienz verbessern.
Lernen Sie die grundlegende Grammatik von Go Golang aus den Grundlagen lernen: Kontrollstruktur
Recommended Posts