go笔记–基本语法、基本输入输出

  • Post author:
  • Post category:其他



目录


一、基本语法


1.注释


2.变量声明和赋值


①.全局变量:


②.局部变量:


③.常量


二、基本输入输出


1.基本输入


①.fmt.Scan()


②.fmt.Scanf()


③.fmt.Scanln()


2.基本输出


①.fmt.Print()


②.fmt.Println()


③.fmt.Printf()


④.Print()与fmt.Print()


3.使用bufio库进行输入


一、基本语法

注意:

每个go文件都需要在开头声明它属于哪个包

每个执行的go程序,都需要有一个main包,main包里需要有一个main函数

go语言属于函数式编程,代码由函数来组织,函数也可以作为参数传递

go语言可以说是一个把编码风格写进语法的语言

1.注释

//单行注释
/*
多行注释
*/

2.变量声明和赋值

go语言中标识符的命名规则与Python的一致

①.全局变量:

package main

import "fmt"

//全局变量声明在函数体外
//全局变量不能声明多次
var a int //整数类型的默认值为0
//声明并赋值
var b = 10
var c int = 20
//用var声明多个变量
var (
    d string
    e int
)

func main() {
    //对全局变量赋值
    a = 10
    fmt.Println(a)
    fmt.Println(b, c)
}

②.局部变量:

package main

import "fmt"

func main(){
    test()
}

func test(){
    //局部变量定义在函数体里
    //局部变量定义了就要使用
    //局部变量也不能重复声明
    var x int    //声明
    x = 100    //赋值
    fmt.Println("x is", x)
    //定义局部变量简便方式 -- 声明+赋值
    y := "abc"
    fmt.Println("y is", y)
}

③.常量

go语言的常量一旦被定义了就不能修改了

常量声明的同时必须赋值,不然会出错

package main

import "fmt"

//定义
const a = 10
//定义多个常量
const(
    b = 20
    c    //未赋值变量的值与上一个变量的值一样
    d
)
const(
    m = 1
    n = 2
    x = iota    //自带的特殊常量 -- 计数器(从0开始计数),计算是第几个常量
    y
)

func main(){
    fmt.Println(a)
    fmt.Println(b, c, d)
    fmt.Println(m, n, x, y)
}

二、基本输入输出

fmt — 标准输入输出包

bufio — 也可以接受输入输出

1.基本输入

①.fmt.Scan()

–接收用户的输入,用空格分隔分别传给变量,敲完所需的输入才会结束

package mian

import "fmt"

func main(){
    var a int
    var b string
    fmt.Println("请输入a和b:")
    //&a 获取a的内存地址
    fmt.Scan(&a, &b)
    fmt.Println("a is", a, "b is", b)
}

②.fmt.Scanf()

–严格按照指定形式输入,若格式未按指定形式输入,赋值会出现错误

package main

import "fmt"

func main(){
    fmt.Print("请按照“a=num,b=num”的格式输入a和b:")
    var a int
    var b string
    fmt.Scanf("a=%d,b=%s", &a, &b)
    fmt.Println("a is", a, "b is", b)
}

错误输入:

正确输入:

③.fmt.Scanln()

–与fmt.Scan()一样用空格分隔分别传给变量,但fmt.Scanln()以换行符来结束本次输入

package main

import "fmt"

func main(){
    fmt.Print("请输入a和b:")
    var a int
    var b string
    fmt.Scanln(&a, &b)
    fmt.Println("a is", a, "b is", b)
}

2.基本输出

①.fmt.Print()

–原样输出,不换行

package main

import "fmt"

func main(){
	fmt.Print("hello")
	fmt.Print("world")
}

②.fmt.Println()

–自动添加换行符和空格分隔符

package main

import "fmt"

func main(){
	fmt.Println("hello", "world")
}

③.fmt.Printf()

–格式化输出

package main

import "fmt"

func main(){
	name := "sctl"
	fmt.Printf("hello %s", name)
}

④.Print()与fmt.Print()

package main

import "fmt"

func main(){
    //错误输出 stderr
	print("test print")
    //标准输出 stdout
	fmt.Print("test fmt print")
}

3.使用bufio库进行输入

package main

import (
	"bufio"
	"fmt"
	"os"
)

func main(){
	fmt.Print("请输入reader的值:")
	//变量reader接收标准输入--从键盘输入
	reader := bufio.NewReader(os.Stdin)
	//直到读到换行符结束,返回的结果有两个,需要用两个变量接收
	//line接收的是输入的内容,e接收的是错误
	//无错误时e为默认值nil
	line, e := reader.ReadString('\n')
	//若不使用变量,可以使用匿名变量_接收
	//line, _ := reader.ReadString('\n')
	fmt.Print("line =", line)
	fmt.Print("error =", e)
}



版权声明:本文为m0_69298614原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。