后端实习の准备:小白从零学习Go语言第二天

后端实习の准备:小白从零学习Go语言第二天

  • 往期链接
  • Day2
    • 2.1 Hello World
    • 2.2 包的导入
    • 2.3 Print?
    • 2.4 愚人节玩笑:格式化输出字符串


往期链接

小白从零学习Go语言第一天


Day2

2.1 Hello World

在安装测试完了之后,我们回过头来看看之前写的hello world

package main

import "fmt"

func main() {
     
   fmt.Println("Hello, World!")
}
  • 其中 package main 定义了包名,这句话需要在第一句声明,它表示一个可独立执行的程序。

    • 每个 Go 应用程序都包含一个名为 main 的包。
    • 文件名与包名没有必然关系,并非需要一致。
    • 同一个文件夹下的文件只能有一个包名,否则编译报错。
  • import "fmt" 意为加载 fmt 包,用来实现输入/输出的函数。

  • func main()是执行的函数名,main 函数是每一个Go 程序所必须包含的,一般是第一个执行的函数,除非如果有 init() 函数存在。

  • 在这里需要注意的一点是Go语言不可以将{ 单独放在一行,如下所示:(报错syntax error: unexpected semicolon or newline before {

后端实习の准备:小白从零学习Go语言第二天_第1张图片

  • fmt.Println("Hello, World!")意为将字符串"Hello, World!"输出到控制台。
    • Println 也支持输出变量,如果没有特别指定,fmt.Println(a)会以默认格式将变量 a 输出到控制台。
    • Go语言中使用大小写来决定该常量、变量、类型、接口、结构或函数是否可以被外部包所调用。这里的Println 以一个大写字母开头,即意味着Println 可以被外部包所使用(需要先导入Println 所在的包即fmt),被称为导出(类似于java中的public)。如果以小写字母开头,则对包外是不可见的(类似java中的protected ),但是在包的内部是可见并可用的。
  • 我们可以注意到fmt.Println("Hello, World!")这个语句和c语言有些小差别。在 Go 程序中,一行代表一个语句结束,不需要以;结尾,和python相似。
  • 另外,Go语言的注释依然是以 // 开头的单行注释,以及以 /* 开头,并以 */ 结尾的多行注释,在此不再赘述。

2.2 包的导入

我们可以通过 import 关键字来导入其他非 main 包。

  • 可以通过 import 关键字单个导入:

import "fmt"
import "io"

  • 也可以同时导入多个:

import (
"fmt"
"math"
)

  • 可以为导入的包fmt起别名为fff方便调用

import fff "fmt"

  • 也可以省略调用(不过不建议使用这种调用方法):调用的时候只需要Println(),不需要fmt.Println()
    在中间加一个.即可

import . "fmt"

2.3 Print?

  • 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
}

2.4 愚人节玩笑:格式化输出字符串

我们现在要输出这样的语句,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为十进制的整数格式。
  • 参数列表:多个参数以逗号分隔,个数必须与格式化样式中的个数一一对应,否则运行时会报错。

你可能感兴趣的:(后端实习の准备,编程语言,golang)