Go语言基础学习四-布尔与数值类型

本文是Go语言基础系列的第四篇,主要介绍Go语言中的布尔类型、数值类型,包括注释、关键字、操作符、标识符、常量、变量、枚举、逻辑操作符、整数类型(如int、rune、byte、uintptr)以及浮点类型。通过本文,读者将了解Go语言中数值类型的使用和规则。
摘要由CSDN通过智能技术生成

  Go语言基础学习四-布尔与数值类型

    前面两篇boke老汉是利用代码分析的方式来从大致总体及实际的角度来认识go语言的特性,今天从这一篇开始及以后则是根据go语言的基础部分分章节进行针对性的学习,这一篇我们讲解的内容是go语言最基础的部分,注释,go语言的关键字和操作符,及合法标识符构成等,一旦这些基础性的东西讲解完将会讲解布尔类型,整形及浮点型。这些东西虽然简单,但是却是我们go语言表达最基础的部分,在老汉觉得,无论任何语言都是在基础表达熟练的情况下,加上自己的逻辑思维(算法)才能做到出口成章,条理清晰,代码才能通俗易懂,结构紧凑~废话不多说,马上进入基础部分的学习吧!

    注释:go语言支持两种类型的注释,从C++借鉴而来,行注释以//开头,块注释以/*开头*/结尾表示

     标识符:首字符必须是字母,不能与关键字同名,字母可以是下划线或Unicode中的任何字符,且标识符区分大小写,如little与Little就是两个不同的标识符,且以大写字母开头的标识符是公开的可以导出的,其它的标识符都是私有的,(除了包名约定为全小写)

     空标识符”_”是一个占位符,将某个值赋值给空标识符达到丢弃该值的目的,某个函数的返回值中忽略某些值是很常见的。

     关键字(25个):


预定义的标识符(36个):

   常量和变量:

    常量:使用关键字const声明

    变量:使用var声明,也可以使用快捷变量声明语法(i := 1.5),go语言会自动推断出所声明变量的类型(var i = false),如果需要也可以显示声明变量(var i type),一般而言,对于整形字面量,go推断为int,对于浮点字面量,go推断为float64,对于复数字面量,go推断为complex128。通常我们不去显式地声明其类型。go语言会将数值变量默认为0,将字符串默认为空,防止未初始化。

    枚举类型:当需要设置多个常量的时候,我们不必重复使用const关键字,只需要使用const关键字一次即可。

    const Cyan=0  const Magenta=1 const Yellow=2 等价于 const {Cyan=0 , Magenta=1, Yellow=2 }

    如果第一个常量的值没有被显式设置(设为一个值或者是iota),则它的值为0,第二个及随后的常量值设为前面一个常量的值。或前面的值设为iota,后续值也为iota,后续的每一个iota都比前面的iota大1,如const {Cyan=iota //0 , Magenta  //1, Yellow //2},iota预定义的标识符表示连续的无类型整数常量,每次关键字出现时,它的值会设为0。也可以将iota与浮点数,表达式以及自定义类型一起使用。

    type BitFlag int 

    const{

        Active BitFlag =1<<iota //1<<0 == 1

        Send          //隐式地设置为BitFlag = 1<<iota == 2

        Receive      //隐式地设置为BitFlag = 1<<iota == 4

    }

      flag := Active | Send  //按位或操作,flag==001|010 == 011 ==3


 布尔值和布尔表达式(内置布尔值true false)

  二元逻辑操作符(||和&&)采用短路逻辑,这意味着如果我们表达式为b1||b2如果b1为true则不考虑b2,同理b1||b2中b1为false则不考虑b2

  无类型的数值常量可以与任何类型的数值兼容。,为了在不同数值类型之间进行运算或比较,则需要采用type(value)的形式,如i:=int(j)

  go语言的整数类型:


rune 类型是 Unicode 字符类型,和 int32 类型等价,通常用于表示一个 Unicode 码点。rune 和 int32 可以互换使用。

byte 是uint8类型的等价类型,byte类型一般用于强调数值是一个原始的数据而不是 一个小的整数。

uintptr 是一种无符号的整数类型,没有指定具体的bit大小但是足以容纳指针。 uintptr类型只有在底层编程是才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。

不管它们的具体大小,int、uint和uintptr是不同类型的兄弟类型。其中int和int32也是 不同的类型, 即使int的大小也是32bit,在需要将int当作int32类型的地方需要一个显式 的类型转换操作,反之亦然。

有符号整数采用 2 的补码形式表示,也就是最高 bit 位用作表示符号位,一个 n bit 的有 符号数的值域是从 -2^{n-1} 到 2^{n-1}-1。例如,int8类型整数的值域是从-128 到 127, 而uint8类型整数的值域是从0到255。


go语言标准库提供了两个无限精度的整数类型:用于整数的big.Int以及用于有理数的big.Rat(包括可以表示成分数的数字2/3)

浮点类型:float32,float64,complex64(实部和虚部都是float32位),complex128(实部和虚部都是float64)

math包中有很多函数学用途的函数工具。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值