前言
本文将通过最基本的“Hello,World”以及其它简单的引申例子,来介绍GO语言基本的输入输出操作。
1.概述
GO语言当中的输入输出语句,都存在于fmt包里,所以当我们需要进行输入输出的时候,就得先将fmt包进行导入。导入的方式与python语言的导入语法一致。语法结构如下:
// 引入一个包时:
import 包名
// 引入多个包时:
import (
包1
包2
......
)
2.“Hello,World”
package main
import "fmt"
func main() {
/* 这是我的第一个的程序 */
fmt.Println("Hello, World!")
}
第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。程序执行的本质就是运行main包中的main函数。
下一行 import "fmt" 告诉 Go 编译器这个程序需要使用 fmt 包,fmt 包实现了格式化 IO(输入/输出)的函数。
下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。Go中的main函数不支持任何返回值,可以通过os.Exit(0)来返回状态。
下一行 /*...*/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。
下一行 fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。使用 fmt.Print("hello, world\n") 可以得到相同的结果。
综上,通过该示例,我们可知GO语言的编写基本构成包括以下六个部分:
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
3.输入输出常用语句
输入:
1.fmt.Scanf
语法与C语言中的scanf函数相同,格式:fmt.Scanf(“占位符”,&变量名)
2.fmt.ScanIn
一行输入,可以读取空格,输入换行时则停止,格式:fmt.ScanIn(&变量名)
3.fmt.Scan
读取多个值,以空格或者换行分隔,当全部变量输入完毕后,自动结束。
语法格式同fmt.ScanIn
输出:
1.fmt.PrintIn
输出并自动换行 语法格式:fmt.PrintIn(“.....”,变量名1,“.....”,变量名2,....)
2.fmt.Printf
格式化输出, 语法格式:fmt.Printf(“.......占位符1....占位符2......”,变量名1,变量名2)
3.fmt.Print
普通输出不换行,语法格式同fmt.PrintIn
格式 | 对应数据类型 |
---|---|
%d | 整型 |
%f | 浮点型 |
%s | 字符串 |
%t | 布尔值 |
%v | 自动匹配 |
示例代码1:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Scanln(&name, &age)
fmt.Println("My name is", name, "age is ", age)
}
示例代码2:
package main
import "fmt"
func main() {
var name string
var age int
fmt.Scanf("%s,%d", &name, &age)
fmt.Printf("My name is %s and age is %d", name, age)
}
上述两类代码实现的功能都是一样的,都是接受从键盘的输入,赋予变量name和age,最终输出结果。