2021.3.11-3.12 包、占位符、变量、赋值

控制台运行go文件

打开命令行
先进入go文件所在盘符,再进入go文件所在文件夹
执行命令:go run 文件名.go

Go文件的基本组成

//声明文件属于哪个包(必有,且包名必须为main)
package main

//声明main函数——程序的入口(必有,且函数名必须为main)
func main() {
  代码
}

注:go程序从*main.main开始执行

 格式化输出

语言自带:

print()      输出,写多个,不换行
printf()     输出,写多个,每个占一行

 引入包

// 单独引入
import "fmt" 

// 批量引入
import(
    "fmt"
    "xxxx"
    ……
)

fmt包

格式化输入输出的专用包

Printf() 输出

功能与print()相似,但可以使用占位符

// 打印后,%d将被30取代
fmt.Printf("我真不是:%d岁,真的不是!", 30)

// 打印后,两个%d,将被参数二和三取代
fmt.Printf("我真不是:%d岁,真的不是%d岁!", 30, 30)

 占位符种类

%d    整数

%f    浮点数

%s    字符串

%p    指针

%v    go内部表示

转义字符

特殊的字符(没法直接打出来),用转义字符代表要出现的特殊的字符,如\n,可让字符串换行

fmt.Printf("我是\n帅哥")

打印后,会打印:

我是

帅哥

Scanf() 输入

使用fmt.Scanf()后,需要用户输入值,才会执行结果

比如,做一个根据用户输入的值,进行加法运算

func main () {
    var a int
    var b int

    // 接收
    var num,_ = fmt.Scanf("%d %d", &a, &b)
    /*
    注:
    ,为声明多个变量,_ 为声明无用的变量,&为取址运算
    fmt.Scanf的返回值有两个,返回值一,代表成功与否的数字,而返回值二,则是一串很长的英文说明,无法拿来做判断。
    而按照go语言的特性,如果返回值有两个,程序只声明一个变量接收一个值,另一个无法接收,就会报错。
    因此,可以声明一个变量n,再声明一个无用变量_
    */

    // 计算并打印结果
    fmt.Printf("%d", a+b)

}

以上例子,一但运行,那么在用户输入两个数字前,程序并不会向下执行。在终端内,光标会一直闪烁,直到用户输入内容。

将上述例子进行优化,给予用户提示

func main () {
    var a int
    var b int
    
    // 提示
    fmt.Printf("请输入两个整数:")

    // 接收
    var num,_ = fmt.Scanf("%d %d", &a, &b)

    // 计算并打印结果
    fmt.Printf("%d", a+b)

}

增加提示后,执行后会先输出提示

再进行优化,根据Scanf()的返回值,判断是否成功

func main () {
    var a int
    var b int
    
    // 提示
    fmt.Printf("请输入两个整数:")

    // 接收
    var num,_ = fmt.Scanf("%d %d", &a, &b)

    // 计算并打印结果
    fmt.Printf("%d", a+b)

    // 判断输入是否有误
    if(n == 2){
        fmt.Printf("%d", a+b)
    }else{
        fmt.Printf("您输入整数或整数未用空格隔开")
    }
}

变量

三种声明数据类型的方法

1. 带初始值

var a=0       //隐式类型声明

2. 带类型

var a int     //显式类型声明

3. 带初始值、类型

var a int=0   //显式类型声明

批量声明变量

var a,b,c = 1,2,3

var (
    a int
    b int
)

错误的声明变量

// 声明变量但未设置类型
var a

// 不写var
num = 1

// 正确的声明
var a int
var num = 1

常量

常量使用const来声明,也即是不可变的量

声明常量必须赋值

const a int = 1

 赋值

普通赋值

var a=5

声明赋值,使用该方式,可不写var

a:=5

用途:

1. 方便

2. 部分语法结构不允许var(嵌套if、for)

 解构赋值

一次性对多个变量赋值

var a,b=12,5
var a,b=12,"sss"
const a,b=1,2
a,b:=12,5

无用变量 _

特殊的变量,作用丢弃数据但是不报错

var num,_ = fmt.Scanf("%d %d", a, b)

 

给TA买糖
共{{data.count}}人
人已赞赏
Go

2021.3.11-3.12 go的优劣

2021-3-15 11:37:06

Go

2021.3.11-3.12 数据类型

2021-3-17 10:41:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索