教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang lesson3 - 基础数据类型

golang lesson3 - 基础数据类型

发布时间:2022-01-30   编辑:jiaochengji.com
教程集为您提供golang lesson3 - 基础数据类型等资源,欢迎您收藏本站,我们将为您提供最新的golang lesson3 - 基础数据类型资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg>

学习编程语言,首先要接触的就是数据类型了,几乎所有的编程语言都将数据类型分为两种类型:基础/内置数据类型 自定义/扩展数据类型。

对于基本数据类型,主流编程语言都支持以下几种:

<ul><li>布尔型:bool/Bool/Boolean,这种使用一个bit位来表示,只有两个值,true或者false。如果一个变量为布尔型,那么它不是true就是false。</li><li>整型:按照存储的bit位,可以分为8位、16位、32位、64位,按照有无符号,又分为两类:有符号和无符号。对应golang中,就是int8/uint8、int16/uint16、int32/uint32、int64/uint64以及一个按照操作系统平台设定的动态字长(32位或者64位)的int/uint。有很多语言支持long、long long类型,go是不支持的。</li><li>字符串:这个在各大主流语言中基本是一致的,有的是大写的String,比如C#,有的是小写的string,比如golang。不过所表示的意思都是一样的:一组字符集合。</li><li>字节型:char/byte,这是一种8bit存储方式的用于表示单个字符的类型,比如 ‘a’、’\n’ 这种。Golang中还有一种用32bit存储的单字节类型:rune,这种是存储单字符表示Unicode字符集中的字符,比如 ‘中’ 这个字符,就可以使用rune进行存储。</li><li>浮点数:基本上有两种,一种是单精度的,也就是精确到小数位后6~7位的32bit存储的,另一种是精确到小数位后15~16位的64bit存储的。在各种语言中具体的表示也不同,C/C 中为float/double,golang中为float32/float64,在rust中最简单,为f32/f64,JavaScript中只有一种:double。</li></ul>

其他的基本类型,各个语言有自己的定义,在Golang中还有复数型:complex64/complex128。

具体例子就不写了,这里我们重点说明:Golang中是不支持类型之间的隐式转换的。比如下面的错误:

<pre><code class="lang-go hljs"><span class="token keyword">var</span> a <span class="token builtin">int</span> <span class="token operator">=</span> <span class="token number">1</span> <span class="token keyword">var</span> b <span class="token builtin">int64</span> <span class="token operator">=</span> a <span class="token comment">// error</span> </code></pre>

在64位机器上,这两种的分配的空间大小是相同的,但是不能进行隐式转换。在C/C 中是允许的。

在来看一个例子:

<pre><code class="lang-go hljs"><span class="token keyword">type</span> MyInt <span class="token builtin">int64</span> <span class="token keyword">var</span> c <span class="token builtin">int64</span> <span class="token operator">=</span> <span class="token number">3</span> <span class="token keyword">var</span> d MyInt <span class="token operator">=</span> c <span class="token comment">// error</span> </code></pre>

这个例子也比较典型,Golang也别名类型的隐式转换都不支持。

我们怎么知道数据的类型呢?

方式有很多,一种简单的方式就是使用fmt打印出来,这里使用%T来获取数据的类型,示例:

<pre><code class="lang-go hljs">str <span class="token operator">:=</span> <span class="token string">"abcd"</span> fmt<span class="token punctuation">.</span><span class="token function">Printf</span><span class="token punctuation">(</span><span class="token string">"%T"</span><span class="token punctuation">,</span> str<span class="token punctuation">)</span> <span class="token comment">// Test时,使用t.Logf("%T", str)</span> </code></pre>

OK,今天的学习就到这,动手试试吧。

到此这篇关于“golang lesson3 - 基础数据类型”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang lesson3 - 基础数据类型
golang基础教程
Go 零基础编程入门教程
golang中的nil
学习golang开始前的准备工作
GO语言零基础从入门到精通视频教程
golang中接口的内部实现
redis的基础数据结构之 sds
Go:06---语言数据类型整体介绍、数据类型检查(reflect包)、数据类型转换
Go语言的函数、方法和接口

[关闭]
~ ~