Ein Ruby-Experte lernte die grundlegende Grammatik der Go-Sprache

Überblick

Sechs Monate nachdem ich Ruby gelernt hatte, wollte ich eine andere Sprache lernen, also berührte ich Go ein wenig.

Unterschied zwischen Ruby und Go (FizzBuzz)

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
}

Iterative Verarbeitung

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

Über: =

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.

Referenzmaterial

Lernen Sie die grundlegende Grammatik von Go Golang aus den Grundlagen lernen: Kontrollstruktur

Recommended Posts

Ein Ruby-Experte lernte die grundlegende Grammatik der Go-Sprache
Über den Grundtyp von Go
Ein leicht verständlicher Vergleich der grundlegenden Grammatik von Python und Go
[Go] Grundlegende Grammatik ① Definition
[Go] Grundlegende Grammatik ② Anweisung
[Go] Grundlegende Grammatik ③ Zeiger
Funktionen der Go-Sprache
Ich habe die grundlegende Python-Grammatik gelernt
Ich habe die grundlegende Grammatik von Python in Jupyter Lab geschrieben
Grundlegende Grammatik des Python3-Systems (Wörterbuch)
[GO-Sprache] Organisieren Sie das Importverhalten an anderen Orten als GOPATH
Was Java-Benutzer davon gehalten haben, die Go-Sprache für einen Tag zu verwenden
[Grundlegende Grammatik] Unterschiede zwischen Ruby / Python / PHP
[Python] Ich habe die grundlegende Grammatik persönlich zusammengefasst.
Grundlegende Grammatik der Python3-Reihe (Zeichenkette)
Grundlegende Grammatik der Python3-Reihe (Liste, Tapple)
Python-Grundkurs (Ende 15)
Grundlegende Grammatik des Python3-Systems (inklusive Notation)
Was Sie sich mit der grundlegenden Grammatik "String Manipulation" von Python merken möchten
Twittern Sie regelmäßig mit der Twitter-API in Go-Sprache
Hallo Welt mit allen Funktionen der Go-Sprache
Angeben des Bereichs von Ruby- und Python-Arrays
Dies ist die einzige grundlegende Überprüfung von Python ~ 1 ~
Dies ist die einzige grundlegende Überprüfung von Python ~ 2 ~
Dies ist die einzige grundlegende Überprüfung von Python ~ 3 ~
Vergleich von Python und Ruby (Environment / Grammar / Literal Edition)
Zusammenfassung von Anfang bis Kapitel 1 der Einführung in Entwurfsmuster, die in der Java-Sprache gelernt wurden
Die Geschichte der Portierung von Code von C nach Go (und zur Sprachspezifikation)