首页 > 技术文章 > 1.0、Go快速入坟系列之变量、常量与算术运算符

deehuang 2020-12-31 01:53 原文

1.x系列主要记录的是所有Go语言的基础语法知识(部分内容较为简单,但笔者想完整的记录整个go语言入门学习过程,一是为了加深印象、二是为了提升文笔),知识点来自于B站大佬solenovex的快速入门视频。讲的言简意赅,直击人心!强烈推荐

1.0、算术运算符、变量、常量


算术运算符

这部分直接水过。。Go和大部分语言一样,提供了+ - * / %(取余)等常见常用的运算符。

  1. 控制台输出运算结果:
    此处需要一提的是Go的打印控制台使用的是fmt包下的PrintPrintln二者的区别在于后者是换行打印。为啥要突然提打印?因为我要用。。。
    下面就是使用Go算术运算符计算后打印到控制台的示例(虽然很简单,但是还是要写出来水字数)

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	fmt.Print(1 + 1)   // 加
    	fmt.Print(1 - 1)   // 减
    	fmt.Print(1 * 1)   // 乘
    	fmt.Println(1 / 1) // 除 -换行输出
    	fmt.Println(1 % 1) // 取模-换行输出
        
        fmt.Println("我后面可以接多个参数", 1+1*2/1%3, "不同类型也可以组合成字符串格式")
    }
    

    在控制台输入go run “文件名如:main.go”
    image-20201231005544019
    上图可以看到2011实际上是前面的四个打印语句所输出的内容,因为没有print是不换行的所以粘一块去了。
    最后的打印语句是不是看到了python的身影?不同的类型可以任意放到print中作为参数组合输出,输出的参数与参数之间默认是以空格分割开的,实在不要太方便。

  2. 再讲打印:
    image-20201231010519074
    当我们在编辑器中输入fmt.Pr的时候可以看到列出了三个方法,上图1,3在上面都有运用到,所以应该并不陌生,但是Printf是做啥子的呢?
    Printf提供个格式化打印的功能,简单的一个代码片段既能理解:
    fmt.Printf("I am %v, I love %v\n", "Jochen", "Go")
    printf要求第一个参数必须为字符串,其中的%v表示的是占位符,后面的参数按顺序匹配这些占位符,上面的输出结果就是
    image-20201231011253626
    \n为转移字符,表示换行符,可以看到上图新的命令行是在输出内容的下方出现

    补充:
    占位符可以指定宽度,如%2v表示的向左填充两个空格,如果是负数如-2%v表示向右填充两个空格。所谓填充,是包括占位符所对应的字符串长度的,如fmt.Printf(%3v, "go") 表示的是如果字符串不够3个字符长度,则填充到三个字符,这里因为是3为正数所以是向左填充所以输出的是:
    go (空格go)

常量与变量

  • Go中使用const作为常量的标识符,常量是不可以改变的

  • Go中使用var作为变量的标识符(接触过js的小伙伴应该非常的熟悉),注意,使用变量首先需要声明。

image-20201231013117223

不用多解释了吧,图中示例可以看到,身高是常量,钱包是变量。人生如戏~

赋值运算符

赋值、赋值,就是把一个值给一个常量或者变量,上面的等于号=就是赋值符号

这里需要拓展一些简写方式:

var height = 1.5
height +=  2  // 相当于height = height + 2
height *=  2  // 相当于height = height * 2
// ...其他符号组合也是这个意思

这里说到运算符需要提一下在其他语言中常见的自增运算符 ++count
在Go里面是没有这操作的,只有count++

拓展:随机数生成

要随机生成某个范围内的数,我们可以使用rand包。improt路径为import math/rand

package main

import (
	"math/rand"
)

func main() {

	var num = rand.Intn(10)  // 生成[0,10)范围的随机数
}


然后本章的内容就差不多到这里了。这里最后要提的是多个变量与常量的声明方式,这里直接看示例就行了

package main

func main() {

	// 第一种 low声明
	var a = 100
	var b = 200

	// 第二种 小low声明
	var (
		a = 100
		b = 200
	)

	// 第三种 舒服的一批
	var a, b = 100, 200

	const x, y = 1, 2
}

小伙伴们可以随便选择自己喜欢的代码风格进行常量与变量的声明~

推荐阅读