小白从零学习Go语言第一天
在安装测试完了之后,我们回过头来看看之前写的hello world
:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
其中 package main
定义了包名,这句话需要在第一句声明,它表示一个可独立执行的程序。
import "fmt"
意为加载 fmt
包,用来实现输入/输出的函数。
func main()
是执行的函数名,main
函数是每一个Go 程序所必须包含的,一般是第一个执行的函数,除非如果有 init()
函数存在。
在这里需要注意的一点是,Go语言不可以将{
单独放在一行,如下所示:(报错syntax error: unexpected semicolon or newline before {
)
fmt.Println("Hello, World!")
意为将字符串"Hello, World!"
输出到控制台。
Println
也支持输出变量,如果没有特别指定,fmt.Println(a)
会以默认格式将变量 a 输出到控制台。Println
以一个大写字母开头,即意味着Println
可以被外部包所使用(需要先导入Println
所在的包即fmt
),被称为导出(类似于java中的public)。如果以小写字母开头,则对包外是不可见的(类似java中的protected ),但是在包的内部是可见并可用的。fmt.Println("Hello, World!")
这个语句和c语言有些小差别。在 Go 程序中,一行代表一个语句结束,不需要以;
结尾,和python相似。我们可以通过 import
关键字来导入其他非 main 包。
import
关键字单个导入:import
"fmt"
import"io"
import (
"fmt"
"math"
)
import
fff
"fmt"
Println()
,不需要fmt.Println()
import .
"fmt"
Print()
函数将参数列表 a
中的各个参数转换为字符串并写入到标准输出中。非字符串参数之间会添加空格,返回写入的字节数。func Print( a ...interface{
} ) ( n int, err error )
//将转换结果字符串写入到 w 中而不是标准输出
func Fprint(w io.Writer, a ...interface{
}) (n int, err error)
//将转换结果以字符串形式返回
func Sprint(a ...interface{
}) string
Println()
函数功能类似 Print()
,只不过最后会添加一个换行符。所有参数之间会添加空格,返回写入的字节数。func Println(a ...interface{
}) (n int, err error)
//将转换结果字符串写入到 w 中而不是标准输出
func Fprintln(w io.Writer, a ...interface{
}) (n int, err error)
//将转换结果以字符串形式返回
func Sprintln(a ...interface{
}) string
Printf()
函数将参数列表 a
填写到格式字符串 format 的占位符中。填写后的结果写入到标准输出中,返回写入的字节数。func Printf(format string, a ...interface{
}) (n int, err error)
//将转换结果字符串写入到 w 中而不是标准输出
func Fprintf(w io.Writer, format string, a ...interface{
}) (n int, err error)
//将转换结果以字符串形式返回
func Sprintf(format string, a ...interface{
}) string
//Errorf() 函数功能同 Sprintf() 函数,只不过结果字符串被包装成了 error 类型。
func Errorf(format string, a ...interface{
}) error
输出实例:
func main() {
fmt.Print("a", "b", 1, 2, 3, "c", "d", "\n")
// ab1 2 3cd
fmt.Println("a", "b", 1, 2, 3, "c", "d")
// a b 1 2 3 c d
fmt.Printf("ab %d %d %d cd\n", 1, 2, 3)
// ab 1 2 3 cd
}
我们现在要输出这样的语句,2021年4月1日是我们在一起的第1天
,
要求要用到一个整型数字1
和两个字符串2021年4月1日
,%s是我们在一起的第%d天
:
package main
import "fmt"
func main() {
// %s 表示字符串
// %d 表示整型数字
var number = 1
var date = "2021年4月1日"
var s = "%s是我们在一起的第%d天"
var output = fmt.Sprintf(s,date,number)
fmt.Println(output)
}
Go 可以使用 fmt.Sprintf()
来格式化字符串,格式如下:
fmt.Sprintf
(格式化样式, 参数列表…)
- 格式化样式:字符串形式,格式化符号以 % 开头, %s为字符串格式,%d为十进制的整数格式。
- 参数列表:多个参数以逗号分隔,个数必须与格式化样式中的个数一一对应,否则运行时会报错。