Inhaltsverzeichnis
fmt.Scan
语法
代码示例
fmt.Scanf
fmt.Scanln
fmt.Scan
Syntax
Codebeispiel
🎜fmt.Scanf🎜
🎜fmt.Scanln🎜
Heim Backend-Entwicklung Golang Wozu dient die Scan-Methode in der Go-Sprache?

Wozu dient die Scan-Methode in der Go-Sprache?

Mar 15, 2021 pm 04:46 PM
go语言 scan

In der Go-Sprache wird die Scan()-Methode verwendet, um Text aus der Standardeingabe „os.Stdin“ zu lesen, also Daten vom Terminal abzurufen. Diese Methode gibt die Anzahl der erfolgreich gelesenen Daten und alle aufgetretenen Fehler zurück. Wenn die Anzahl der gelesenen Daten unter den angegebenen Parametern liegt, wird ein Fehlerberichtsgrund zurückgegeben.

Wozu dient die Scan-Methode in der Go-Sprache?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Scan-Serie

Go-Sprachpaket fmt enthält fmt.Scan, fmt.Scanf, fmt Scanln verfügt über drei Funktionen, die während der Programmausführung Benutzereingaben aus der Standardeingabe abrufen können. fmt包下有fmt.Scanfmt.Scanffmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用户的输入。

fmt.Scan

语法

func Scan(a ...interface{}) (n int, err error)
Nach dem Login kopieren
  • Scan从标准输入扫描文本,读取由空白符分隔的值保存到传递给本函数的参数中,换行符视为空白符。
  • 本函数返回成功扫描的数据个数和遇到的任何错误。如果读取的数据个数比提供的参数少,会返回一个错误报告原因。

代码示例

func main() {
    var (
        name    string
        age     int
        married bool
    )
    fmt.Scan(&name, &age, &married)
    fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married)
}
Nach dem Login kopieren

将上面的代码编译后在终端执行,在终端依次输入小明18false使用空格分隔。

$ ./scan_demo 
小明 18 false
扫描结果 name:小明 age:18 married:false
Nach dem Login kopieren
Nach dem Login kopieren

fmt.Scan从标准输入中扫描用户输入的数据,将以空白符分隔的数据分别存入指定的参数。

fmt.Scanf

语法

func Scanf(format string, a ...interface{}) (n int, err error)
Nach dem Login kopieren
  • Scanf从标准输入扫描文本,根据format参数指定的格式去读取由空白符分隔的值保存到传递给本函数的参数中。
  • 本函数返回成功扫描的数据个数和遇到的任何错误。

代码示例

func main() {
    var (
        name    string
        age     int
        married bool
    )
    fmt.Scanf("1:%s 2:%d 3:%t", &name, &age, &married)
    fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married)
}
Nach dem Login kopieren

将上面的代码编译后在终端执行,在终端按照指定的格式依次输入小明、18false。

$ ./scan_demo 
1:小明 2:18 3:false
扫描结果 name:小明 age:18 married:false
Nach dem Login kopieren

fmt.Scanf不同于fmt.Scan简单的以空格作为输入数据的分隔符,fmt.Scanf为输入数据指定了具体的输入内容格式,只有按照格式输入数据才会被扫描并存入对应变量。

例如,我们还是按照上个示例中以空格分隔的方式输入,fmt.Scanf就不能正确扫描到输入的数据。

$ ./scan_demo 
小明 18 false
扫描结果 name: age:0 married:false
Nach dem Login kopieren

fmt.Scanln

语法

func Scanln(a ...interface{}) (n int, err error)
Nach dem Login kopieren
  • Scanln类似Scan,它在遇到换行时才停止扫描。最后一个数据后面必须有换行或者到达结束位置。
  • 本函数返回成功扫描的数据个数和遇到的任何错误。

代码示例

func main() {
    var (
        name    string
        age     int
        married bool
    )
    fmt.Scanln(&name, &age, &married)
    fmt.Printf("扫描结果 name:%s age:%d married:%t \n", name, age, married)
}
Nach dem Login kopieren

将上面的代码编译后在终端执行,在终端依次输入小明18false使用空格分隔。

$ ./scan_demo 
小明 18 false
扫描结果 name:小明 age:18 married:false
Nach dem Login kopieren
Nach dem Login kopieren

fmt.Scanln

fmt.Scan

Syntax

rrreee
  • Scan scannt Text aus der Standardeingabe und liest aus Leerzeichen Durch Trennzeichen getrennte Werte werden in den an diese Funktion übergebenen Argumenten gespeichert und Zeilenumbrüche werden als Leerzeichen behandelt.
  • Diese Funktion gibt die Anzahl der erfolgreich gescannten Daten und alle aufgetretenen Fehler zurück. Wenn die Anzahl der gelesenen Daten geringer ist als die angegebenen Parameter, wird ein Fehlerberichtsgrund zurückgegeben.

Codebeispiel

rrreeeKompilieren Sie den obigen Code und führen Sie ihn im Terminal aus. Geben Sie im Terminal Xiao Ming ein , 18 und false werden durch Leerzeichen getrennt. rrreeefmt.Scan scannt die vom Benutzer eingegebenen Daten aus der Standardeingabe und speichert die durch Leerzeichen getrennten Daten in den angegebenen Parametern. 🎜

🎜fmt.Scanf🎜

Syntax

rrreee
  • Scanf scannt Text aus der Standardeingabe Das durch den Formatparameter angegebene Format liest durch Leerzeichen getrennte Werte und speichert sie in den an diese Funktion übergebenen Parametern.
  • Diese Funktion gibt die Anzahl der erfolgreich gescannten Daten und alle aufgetretenen Fehler zurück.

Codebeispiel

rrreee🎜Kompilieren Sie den obigen Code und führen Sie ihn im Terminal aus. Geben Sie Xiao Ming, ein Reihenfolge gemäß dem angegebenen Format 18 und false. 🎜rrreee🎜fmt.Scanf unterscheidet sich von fmt.Scan, das einfach Leerzeichen als Trennzeichen für Eingabedaten verwendet, fmt.Scanf Für die Eingabedaten wird ein bestimmtes Eingabeinhaltsformat angegeben. Nur die dem Format entsprechenden Eingabedaten werden gescannt und in den entsprechenden Variablen gespeichert. 🎜🎜Wenn wir beispielsweise weiterhin im durch Leerzeichen getrennten Format wie im vorherigen Beispiel eingeben, kann fmt.Scanf die Eingabedaten nicht korrekt scannen. 🎜rrreee

🎜fmt.Scanln🎜

Syntax

rrreee
  • Scanln ähnelt Scan, es stoppt den Scanvorgang nur, wenn es auf a trifft Zeilenumbruch. Nach den letzten Daten muss ein Zeilenumbruch erfolgen, sonst muss die Endposition erreicht werden.
  • Diese Funktion gibt die Anzahl der erfolgreich gescannten Daten und alle aufgetretenen Fehler zurück.

Codebeispiel

rrreee🎜Kompilieren Sie den obigen Code und führen Sie ihn im Terminal aus. Geben Sie Xiao Ming, 18 und false werden durch Leerzeichen getrennt. 🎜rrreee🎜fmt.Scanln beendet den Scan, wenn ein Wagenrücklauf auftritt. Dies wird häufiger verwendet. 🎜🎜Empfohlenes Lernen: 🎜Golang-Tutorial🎜🎜

Das obige ist der detaillierte Inhalt vonWozu dient die Scan-Methode in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Apr 02, 2025 pm 02:03 PM

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Apr 02, 2025 pm 05:09 PM

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Bei der Verwendung von Goland für GO -Sprachentwicklung begegnen viele Entwickler benutzerdefinierte Struktur -Tags ...

Warum gibt es bei Verwendung von SQL.Open keinen Fehler an, wenn DSN leer ist? Warum gibt es bei Verwendung von SQL.Open keinen Fehler an, wenn DSN leer ist? Apr 02, 2025 pm 12:54 PM

Warum meldet der DSN bei Verwendung von SQL.Open keinen Fehler? In Go Language, Sql.open ...

See all articles