分享
  1. 首页
  2. 文章

学习Golang语言(3):类型--布尔型和数值类型

codemanship · · 1164 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

跟着"码术"一起学习Golang语言。今天讲解Golang语言的基本类型,介绍布尔类型和数值类型。

学习Golang语言(1): Hello World

学习Golang语言(2): 变量

学习Golang语言(3):类型--布尔型和数值类型

学习Golang语言(4):类型--字符串

学习Golang语言(5):类型--数组


布尔类型

布尔类型是 bool。Go语言提供了内置的布尔值true和flase。Go语言支持标准的逻辑和比较操作。这些操作的结果都是布尔值。

布尔值和表达式可以用于if语句中,for语句的条件中以及switch语句的case的判断中。

逻辑操作符:

!:逻辑非操作符;

||:逻辑或操作符;

&&:逻辑与操作符

比较操作符。

<,>, ==,!=, <=, >=


数值类型

----整形和浮点型

Go语言提供大量内置的数值类型。众所周知的类型如int,这个类型根据你的系统决定适当的长度。在32位系统上是32位,在64位系统上是64位。因此在Go语言中,int和int32是不同类型。如果你希望明确其长度,可以使用int32或者int64等等。

完整的整数类型(符号和无符号)是int8,int16,int32,int64 和 byte,uint8,uint16,uint32,uint64。其中byte 是 uint8 的别名。

浮点类型的值有 float32 和 float64 (没有 float 类型)。64 位的整数和浮点数总是 64 位的,即便是在 32 位的架构上。

整形变量的默认赋值是0,浮点型变量的默认赋值是0.0

需要注意的是:这些类型全部都是独立的,并且混合使用这些类型向变量赋值会引起编译器错误。例如:

package main
func main(){
 var a int //通用整数类型
 var b int32 // 32位整数类型
 a = 15
 b =a + a // 混合这些类型是非法的,这会导致编译异常
 b = b + 5 // 5是常量(未定义类型),所以没有问题
}

如果不同数值类型之间进行数值运算或者比较操作时,需要进行类型转换。通常将类型转换成最大的类型以防止精度丢失。类型转换采用type(value)的形式。当将类型转换为小的类型时,为了防止防止精度丢失,我们可以创建合适的函数。例如:将int型转换为uint8
func Uint8FromInt(n int) (uint8, error) {
 if 0 <= n && n <= math.MaxUint8 {// conversion is safe
 return uint8(n), nil
 }
 return 0, fmt.Errorf("%d is out of the uint8 range", n)
}

----复数类型

Go原生支持复数。复数有两种类型:complex64(实部虚部都是一个float32)和complex128 (实部虚部都是一个float64)。复数的形式为:re+im i。其中re为实部,im为虚部。

复数可以使用内置的complex()函数或者包含虚部数值的常量来创建。复数的各个部分可以使用内置函数real()和imag()函数获得。

例如:

 var c1 complex64 = 5 + 10i
 fmt.Printf("The value is: %v", c1)
 // 这里会输出: 5 + 10i
 c := complex(50,100);
 fmt.Printf("The value is: %v", c1)
 //这里会输出: 50 + 100i

复数支持所有的算术操作符。唯一可以用于复数的比较操作符号是 == 和!=。

标准库中有一个复数包 math/cmplx提供复数各种通用的操作函数。

如果不需要考虑内存问题,尽量使用complex128类型,因为标准库中所有函数都是使用complex128类型。

---------------------------------------------

欢迎关注码术!一起学习golang.



有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:codemanship

查看原文:学习Golang语言(3):类型--布尔型和数值类型

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
1164 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏