Go - 变量声明
<p></p><div class="toc"><div class="toc-container-header">目录</div><ul><li>概述</li><li>数据类型<ul><li><ul><li>字符串</li><li>布尔</li><li>数字</li></ul></li></ul></li><li>常量声明</li><li>变量声明</li><li>输出方法</li><li>推荐阅读</li></ul></div><p></p><h2 id="概述">概述</h2>
<p>在声明变量之前,咱们先了解下变量的数据类型,这篇文章主要涉及 字符串、布尔、数字,其他类型后面开篇再说。</p>
<h2 id="数据类型">数据类型</h2>
<h4 id="字符串">字符串</h4>
<p><code>string</code></p>
<p>只能用一对双引号("")或反引号(``)括起来定义,不能用单引号('')定义!</p>
<h4 id="布尔">布尔</h4>
<p><code>bool</code></p>
<p>只有 true 和 false,默认为 false。</p>
<h4 id="数字">数字</h4>
<p><strong>整型</strong></p>
<p><code>int8</code> <code>uint8</code></p>
<p><code>int16</code> <code>uint16</code></p>
<p><code>int32</code> <code>uint32</code></p>
<p><code>int64</code> <code>uint64</code></p>
<p><code>int</code> <code>uint</code>,具体长度取决于 CPU 位数。</p>
<p><strong>浮点型</strong></p>
<p><code>float32</code> <code>float64</code></p>
<h2 id="常量声明">常量声明</h2>
<p><strong>常量</strong>,在程序编译阶段就确定下来的值,而程序在运行时无法改变该值。</p>
<p><strong>单个常量声明</strong></p>
<p>第一种:const 变量名称 数据类型 = 变量值</p>
<p>如果不赋值,使用的是该数据类型的默认值。</p>
<p>第二种:const 变量名称 = 变量值</p>
<p>根据变量值,自行判断数据类型。</p>
<p><strong>多个常量声明</strong></p>
<p>第一种:const 变量名称,变量名称 ... ,数据类型 = 变量值,变量值 ...</p>
<p>第二种:const 变量名称,变量名称 ...= 变量值,变量值 ...</p>
<p><strong>测试代码</strong></p>
<pre><code>//demo_1.go
package main
import (
"fmt"
)
func main() {
const name string = "Tom"
fmt.Println(name)
const age = 30
fmt.Println(age)
const name_1, name_2 string = "Tom", "Jay"
fmt.Println(name_1, name_2)
const name_3, age_1 = "Tom", 30
fmt.Println(name_3, age_1)
}
</code></pre>
<p>运行结果:</p>
<p><img src="https://img2018.cnblogs.com/blog/389840/201906/389840-20190628095726606-814262220.png"></p>
<h2 id="变量声明">变量声明</h2>
<p><strong>单个变量声明</strong></p>
<p>第一种:var 变量名称 数据类型 = 变量值</p>
<p>如果不赋值,使用的是该数据类型的默认值。</p>
<p>第二种:var 变量名称 = 变量值</p>
<p>根据变量值,自行判断数据类型。</p>
<p>第三种:变量名称 := 变量值</p>
<p>省略了 var 和数据类型,变量名称一定要是未声明过的。</p>
<p><strong>多个变量声明</strong></p>
<p>第一种:var 变量名称,变量名称 ... ,数据类型 = 变量值,变量值 ...</p>
<p>第二种:var 变量名称,变量名称 ...= 变量值,变量值 ...</p>
<p>第三种:变量名称,变量名称 ... := 变量值,变量值 ...</p>
<p><strong>测试代码</strong></p>
<pre><code>//demo_2.go
package main
import (
"fmt"
)
func main() {
var age_1 uint8 = 31
var age_2 = 32
age_3 := 33
fmt.Println(age_1, age_2, age_3)
var age_4, age_5, age_6 int = 31, 32, 33
fmt.Println(age_4, age_5, age_6)
var name_1, age_7 = "Tom", 30
fmt.Println(name_1, age_7)
name_2, is_boy, height := "Jay", true, 180.66
fmt.Println(name_2, is_boy, height)
}
</code></pre>
<p>运行结果:</p>
<p><img src="https://img2018.cnblogs.com/blog/389840/201906/389840-20190628095741074-31145670.png"></p>
<h2 id="输出方法">输出方法</h2>
<p><strong>fmt.Print</strong>:输出到控制台(仅只是输出)</p>
<p><strong>fmt.Println</strong>:输出到控制台并换行</p>
<p><strong>fmt.Printf</strong>:仅输出格式化的字符串和字符串变量(整型和整型变量不可以)</p>
<p><strong>fmt.Sprintf</strong>:格式化并返回一个字符串,不输出。</p>
<p>测试代码</p>
<pre><code>//demo_3.go
package main
import (
"fmt"
)
func main() {
fmt.Print("输出到控制台不换行")
fmt.Println("---")
fmt.Println("输出到控制台并换行")
fmt.Printf("name=%s,age=%d\n", "Tom", 30)
fmt.Printf("name=%s,age=%d,height=%v\n", "Tom", 30, fmt.Sprintf("%.2f", 180.567))
}
</code></pre>
<p>运行结果:</p>
<p><img src="https://img2018.cnblogs.com/blog/389840/201906/389840-20190628095751410-1762188005.png"></p>
<h2 id="推荐阅读">推荐阅读</h2>
<ul>
<li>Go - 循环</li>
<li>Go - Map 集合</li>
<li>Go - Struct 结构体</li>
<li>Go - Slice 切片</li>
<li>Go - 数组</li>
<li>Go - 变量声明</li>
<li>Go - 环境安装</li>
</ul>
<p>本文欢迎转发,转发请注明作者和出处,谢谢!</p>
</div>
<div id="MySignature" role="contentinfo">
<p style="text-align: center"><img src="https://img2020.cnblogs.com/blog/389840/202008/389840-20200822143814170-1389230174.png"></p>
<p style="border: #e7e7e7 1px solid; padding: 10px 10px; font-size: 12px; background-color: whitesmoke"><span style="margin-left: -14px">作者:新亮笔记(关注公众号,可申请添加微信好友)</span>
<br>
<span style="margin-left: 10px">出处:https://www.cnblogs.com/xinliangcoder</span>
<br>
<span style="margin-left: 10px; color: black">本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。</span>
</p><br><br>
来源:https://www.cnblogs.com/xinliangcoder/p/11101098.html
頁:
[1]