GO语言笔记1-变量与基本数据类型

变量使用步骤

  1. 声明
  2. 赋值
  3. 使用
package main
import "fmt"
func main(){var age int //声明一个 int类型的变量叫ageage = 18 //给变量用 = 赋值fmt.Println(age) //使用变量  输出变量的值
}

编译运行输出变量值

变量的四种使用方式

package main
import "fmt"
func main(){var num1 int = 18 //1.指定变量的类型并且赋值fmt.Println(num1) //使用变量  输出变量的值var num2 int //2定变量类型,不赋值,使用默认值fmt.Println(num2 ) //使用变量  输出变量的值var num3="tom" //3定变量不指定类型,根据后边的赋值自动确认类型fmt.Println(num3 ) //使用变量  输出变量的值num4:="男" //4.省略 var 使用 :=,不能写成 = fmt.Println(num4 ) //使用变量  输出变量的值
}

编译运行

一次性声明多个变量 

package main
import "fmt"
func main(){ //未赋值的fmt.Println("未赋值的####################")var n1,n2,n3 intfmt.Println(n1)fmt.Println(n2)fmt.Println(n3)//赋值的fmt.Println("赋值的####################")var n4,n5,n6 = 10,"小明",7.8fmt.Println(n4)fmt.Println(n5)fmt.Println(n6)
}

编译运行 

变量的类型

  1.  定义在函数内的变量叫做局部变量

  2. 定义在函数外部的变量叫做全局变量
package main
import "fmt"
//第一种声明方式 一个一个声明
var n1 = 100
var n2 = 9.7//第二种声明方式,一次多个
var (n3 = 500n4 = "hello"
)
func main(){ fmt.Println(n1)fmt.Println(n2)fmt.Println(n3)fmt.Println(n4)
}

变量的数据类型 

整数类型

【1】整数类型介绍:
简单的说,就是用于存放整数值的,比如10,-45,6712等等。

【2】有符号整数类型:
【3】无符号整数类型:

【4】其他整数类型:

 

Golang的整数类型,默认声明为int类型 

浮点型

 浮点型底层存储:符号位+指数位+尾数位,尾数位只存了一个大概,有可能会出现精度丢失所以通常建议使用 float64,默认也是float64

浮点数可以用十进制表示形式,也可以用科学计数法

//十进制
var num float32= 3.14//科学计数法
var mum float64 = 314E-2
var num float64 = 314e-2

字符类型

定义字符使用byte

字母、数字、标点等字符底层是按照ASCII码进行存储,本质上是一个整数,可以至直接参与运算,输出字符的时候会将对应码值输出。

package main
import "fmt"func main(){ var c1 byte = 'a'var c2 byte = '6'var c3 byte = '('fmt.Println(c1 + 20) //117fmt.Println(c1) //97fmt.Println(c2) //54fmt.Println(c3) //40
}


  汉字字符,底层对应的是Unicode码值,使用byte会报错类型溢出,因为byte的范围是255,可以使用int

 

 如果想显示对应的字符,必须采用格式化输出

 

转义字符 

常用转义字符

\n 换行    \b 退格    \r 光标回到本行开头,后续就会替换原有的字符

\t 制表符   \" 输出"

布尔型

        布尔型(bool ) 只有两个值 true和false,只占用一个字节,一般用于逻辑运算和流程控制

 

字符串 

        一串固定长度的字符连接起来的字符序列

如果字符串中没有特殊字符,直接使用英文双引号包裹 

如果有特殊字符使用 英文反引号包裹或转义字符

字符串拼接 使用  +   或者 +=,当字符过长时吗+ 需要保留在上一行的最后

基本数据类型默认值

数据类型默认值数据类型默认值
整数类型0布尔false
浮点类型0字符串"" 空串

数据类型转换

基本数据类型转换

 go语言没有自动类型转换,必须显示转换,表达式 T(v) 将值v转换为T类型

表数范围大的类型转换表数范围小的类型会有精度丢失的问题

例如:

package main
import "fmt"func main(){ var i int8 = 3var f float32 = float32(i)fmt.Println(i) fmt.Println(f) 
}

基本类型转string

方式1:fmt.springf("%参数",表达式)

方式2:需要使用strconv包的函数

%T 和 strconv. FormatXxxx  的使用详见go的api文档

package main
import "fmt"
import "strconv"
func main(){ var i int = 19var str1 string = fmt.Sprintf("%d",i) fmt.Println(str1)  //%d 10进制转字符串var str2 string = strconv.FormatInt(int64(i),10)fmt.Println(str2)  var f float64 = 19.0var str3 string = fmt.Sprintf("%f",f) var str4 string = strconv.FormatFloat(f,'f',9,64) fmt.Println(str3)  //%f 浮点型转字符串fmt.Println(str4)
}

string转基本类型

使用strconv包的函数,详见go语言的api

string转其他类型的时候必须是有效的数据,否者会转为对应的默认值

package main
import "fmt"
import "strconv"
func main(){ var s1 string = "true"var b bool/*ParseBool 函数有两个返回值(value bool,err error)value是我们需要的数据,err是出现的错误err可以使用 _ 忽略*/b , _= strconv.ParseBool(s1)fmt.Println("b的类型是:%T,b=%v ",b,b)}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大数据】Spark学习笔记

初识Spark Spark和Hadoop HadoopSpark起源时间20052009起源地MapReduceUniversity of California Berkeley数据处理引擎BatchBatch编程模型MapReduceResilient distributed Datesets内存管理Disk BasedJVM Managed延迟高中吞吐量中高优化机制手动手动APILow levelhigh level流…

RFID技术在3C家电中的全方位应用

RFID技术在3C家电中的全方位应用 一、RFID技术简述 射频识别(RFID)技术是一种无线通信技术,已经在各行各业得到广泛应用。在3C家电领域,RFID技术的应用正在逐渐增加,为产品追溯、库存管理、防伪验证等方面提供了许多…

leetcode1944. 队列中可以看到的人数

Problem: 1944. 队列中可以看到的人数 文章目录 题目解题方法复杂度Code 题目 有 n 个人排成一个队列,从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights ,每个整数 互不相同,heights[i] 表示第 i 个人的高度。 一个人能 看到 他右边…

JVM之对象创建

对象创建的流程 1.类加载检查 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。new指令对…

含科研思考六、关于【图神经网络】的一些要点 | 图神经网络节点表示学习研究:选题参考、问题探讨 | 图神经网络多模态 | 异构图神经网络

我们抬头便看到星光,星星却穿越了万年. 🎯作者主页: 追光者♂🔥 🌸个人简介: 📝[1] CSDN 博客专家📝 🏆[2] 人工智能领域优质创作者🏆 🌟[3] 2023年城市之星领跑者TOP1(哈尔滨)🌿 🌿[4] 2022年度博客之星人工智能领域TOP4🌟 🏅

Docker-Compose部署Redis(v7.2)主从模式

文章目录 一、前提准备1. redis配置文件2. 下载redis镜像3. 文件夹结构 二、docker-compose三、主从配置1.主节点配置文件 环境 docker desktop for windows 4.23.0redis 7.2 一、前提准备 1. redis配置文件 因为Redis 7.2 docker镜像里面没有配置文件,所以需要…

Color Control

设计一个优秀的用户界面是一项艰巨的任务。特别是如果你想改变UI的颜色,调整所有元素可能需要花费大量时间。Color Control可以帮助你!在检查器中以可视化的方式将你的项目颜色定义为资源。Color Control为你提供了组件,当你编辑它们时,它们会自动更新你的UI元素。 颜色控制…

Oracle-游标

简介 游标即cursor,是一种用于遍历结果集的数据类型。它是一个指向结果集的指针,可以用于遍历结果集中的每一行数据,但是一次只能指向一行。游标通常用于存储过程和函数中,以便在处理结果集时能够逐行处理数据。 语法 /* 游标:(…

花了一小时,拿python手搓了一个考研背单词软件

听说没有好用的电脑端背单词软件?只好麻烦一下,花了一小时,拿python手搓了一个考研背单词软件。 代码已经开源在我的github上,欢迎大家STAR! 其中,数据是存放在sqlite中,形近词跳转是根据jaro …

新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…

遥感影像-语义分割数据集:2021年昇腾杯复赛数据集详细介绍及训练样本处理流程

原始数据集详情 简介:细粒度语义分割赛道依据现有的遥感地物分类要求, 结合现有的地物分类实际需求,参照地理国情监测、 “三调”等既有地物分类标准,依据遥感地物“所见即所得”原则, 设计地物要素分类体系&#xff…

Excel技巧之【如何修改密码】

我们知道,Excel可以设置多种密码来保护文件,那想要修改密码,要如何操作呢?下面小编来分享一下Excel常用的3种密码的修改方法,一起来看看吧! 1. “打开密码” 想要修改Excel表格的“打开密码”&#xff0c…

scratch给数据清单排序 2023年12月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch给数据清单排序 一、题目要求 1、准备工作 2、功能实现 二、案例分析

Web前端篇——ElementUI之el-scrollbar + el-backtop + el-timeline实现时间轴触底刷新和一键返回页面顶部

ElementUI之el-scrollbar el-backtop el-timeline实现时间轴触底刷新和一键返回页面顶部。 背景:ElementUI的版本(vue.global.js 3.2.36, index.css 2.4.4, index.full.js 2.4.4) 废话不多说,先看动…

VSCode远程开发配置和SSH免密登录

目录 概要远程开发插件安装开始连接SSH免密登录开发环境配置 概要 现在很多公司都是直接远程到服务器上写代码,使用远程开发,可以在与生产环境相同的环境中开发、测试和部署代码,减少因环境不同而导致的问题。本文将详细介绍如何通过VSCode连…

MS713/MS713T:CMOS 低压、4Ω四路单刀单掷开关,替代ADG713

产品简述 MS713/MS713T 是一款单芯片 CMOS 4 路可选择开关,具有低 功耗、高开关速度、低导通阻抗、低漏电和高带宽特性。其工作 电压范围是 1.8V 到 5.5V ,可以广泛应用在电池供电仪器仪表、新 一代的模数转换和数模转换系统中。其高带宽特性可用在 …

【React系列】网络框架axios库的使用

本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. axios库的基本使用 1.1. 网络请求的选择 目前前端中发送网络请求的方式有很多种: 选择一:传统的Aj…

【K8S 云原生】Pod资源限制、Pod容器健康检查(探针)

目录 一、docker的重启方式和K8S重启方式 1、Pod的重启方式: 2、docker的重启策略: 二、yaml文件快速生成: 三、pod的状态: 四、Pod的资源限制 1、限制的方式和种类 2、CPU的限制的格式: 五、K8S拉取镜像的策…

一文讲透使用SPSS统计分析软件如何处理缺失值?

推荐采用《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“1.9 缺失值处理” 的解答。 本节内容选自《SPSS统计分析入门与应用精解(视频教学版)》 杨维忠、张甜 清华大学出版社“1.9 缺失值处理”&#…

C++完成使用map Update数据 非二进制

1、在LXMysql.h和LXMysql.cpp分别定义和编写关于pin语句的代码 //获取更新数据的sql语句 where语句中用户要包含where 更新std::string GetUpdatesql(XDATA kv, std::string table, std::string where); std::string LXMysql::GetUpdatesql(XDATA kv, std::string table, std…