【GoLang】go入门:go语言执行过程分析 常见数据类型(基本数据类型)

1、go语言执行过程分析

【1】执行流程分析

通过 go build 进行编译
运行上一步生成的可执行文件

在这里插入图片描述

通过 go run 命令直接运行

在这里插入图片描述
【2】上述两种执行流程的区别

  • 在编译时,编译器会将程序运行时依赖的库文件包含在可执行文件中,所以可执行文件会变大很多
  • 通过go build的方式先编译生成可执行文件,我们可以将该可执行文件拷贝到没有go环境的机器上任然可以执行
  • 通过 go run 命令来操作go源代码,在另一台机器上想要运行那么就必须要有go的环境
  • go run 的运行时间比go build 长一些

2、语法注意事项

  1. 源文件以“.go”为扩展名
  2. 程序的执行入口是main函数
  3. 严格区分大小写
  4. 方法由一条条语句构成,每个语句后不需要写分号(Go语言会在每行末尾自动增加分号,体现了Go语言的简洁性)
  5. Go编译器是逐行编译代码的,建议一行只写一条语句,当然,如果要写多条语句,需要手动添加分号进行划分(不建议)
  6. 定义的变量 || import的包没有使用到,编译器报错
  7. 大括号成对出现,且有具体的规定即:
package mainimport "fmt"
func main() { //正确写法fmt.Println("测试{}书写方式")
}func main() 
{ //错误写法,编译器报错fmt.Println("测试{}书写方式")
}

3、代码风格

1、注释:用于解释说明代码,提高程序的可读性
 go语言支持两种注释风格,分别是C语言的/**/代码块注释 和 C++风格的//行注释
 VScode中的注释快捷键:CTRL + / shift + alt + a
2、注意缩进
3、运算符两边加空格
4、行长约定
 一行最多不超过80个字符,超过的使用换行展示

4、常见数据类型介绍

主要分为两大类,分别是基本数据类型和复杂(派生)数据类型

4.1 基本数据类型

主要包括:数值型、字符型、布尔型、字符串

4.1.1 数值型

整数类型

类型有无符号占用存储空间表示的数据范围
int8有符号1字节-27~27-1
int16有符号2字节-215~215-1
int32有符号4字节-231~231-1
int64有符号8字节-263~263-1
uint8无符号1字节0~28-1
uint16无符号2字节0~216-1
uint32无符号4字节0~232-1
uint64无符号8字节0~264-1
int有符号32位OS:4字节
64位OS:8字节
-231~231-1
-263 ~ 263-1
uint无符号32位OS:4字节
64位OS:8字节
0~232-1
0 ~ 264-1
rune有符号等价int32-231~231-1
byte无符号等价uint80~28-1

针对上述的内容做一些针对性的验证,验证代码如下:
在这里插入图片描述
建议:Golang程序中在使用整型变量时,遵守保小不保大的原则,即:在保证程序正确运行的前提下,尽量使用占用空间小的数据据类型

浮点数类型
 常见的有:
  float32:4字节,表示范围:-3.403E38~3.403E38
  float64:8字节,表示范围:-1.798E308~1.798E308
浮点数可能会有精度的损失,通常情况下建议使用float64

4.1.2 字符型

字符型本质上是一个整数,也可以直接参与运算,输出字符的时候,会将对应的ASCII码输出
具体示例如下:
在这里插入图片描述

4.1.3 布尔型

true or false
1字节,多用于条件判断

4.1.4 字符串

字符串就是一串固定长度的字符连接起来的字符序列
在这里插入图片描述
基本数据的默认值

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

4.1.5基本数据类型之间的转换

1、Go在不同类型的变量之间赋值时需要显式转换,并且只有显式转换(强制转换)
2、语法:
  表达式T(v) 将值v转换为类型T
  T:数据类型
  v:需要转换的变量

在这里插入图片描述
基本数据类型 转 string
方式一 :fmt.Sprintf(“%参数”,表达式)
方式二:使用strconv包中的相关函数
在这里插入图片描述
string 转 基本数据类型
方式:使用strconv包下的相关函数实现
在这里插入图片描述

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

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

相关文章

一文1500字从0到1搭建 Jenkins 自动化测试平台

Jenkins 自动化测试平台的作用 自动化构建平台的执行流程(目标)是: 我们将代码提交到代码托管工具上,如github、gitlab、gitee等。 1、Jenkins要能够检测到我们的提交。 2、Jenkins检测到提交后,要自动拉取代码&#x…

慢SQL调优第一弹——更新中

基础知识 Explain性能分析 通过explain我们可以获得以下信息: 表的读取顺序 数据读取操作的操作类型 哪些索引可以被使用 哪些索引真正被使用 表的直接引用 每张表的有多少行被优化器查询了 1)ID字段说明 select查询的序列号,包含一组数…

深度学习技术

深度学习是什么? 深度学习,英文名为Deep Learning,其实就是机器学习的一种高级形式。它的灵感来源于人脑神经网络的工作方式,是一种让机器可以自主地从数据中学习和提取特征的技术。你可以把它想象成一位小侦探,通过不…

C++学习记录——이십팔 C++11(4)

文章目录 包装器1、functional2、绑定 这一篇比较简短,只是因为后要写异常和智能指针,所以就把它单独放在了一篇博客,后面新开几篇博客来写异常和智能指针 包装器 1、functional 包装器是一个类模板,对可调用对象类型进行再封装…

性能测试流程? 怎么做性能测试?

一、前期准备 性能测试虽然是核心功能稳定后才开始压测,但是在需求阶段就应该参与,这样可以深入了解系统业务、重要功能的业务逻辑,为后续做准备。 二、性能需求分析(评审) 评审时,要明确性能测试范围、目…

8.26day46(多重背包 背包结束)

多重背包问题 相比于01背包:01背包数量是为1 多重背包中数量大于1 解决方法:转换成01背包 139. 单词拆分 - 力扣(LeetCode)

运行命令出现错误 /bin/bash^M: bad interpreter: No such file or directory

在系统上运行一个 Linux 的命令的时候出现下面的错误信息: -bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory 这个是在 Windows 作为 WSL 的时候出的错误。 原因和解决 出现问题的原因在于脚本在 Windows 中使用的回车换行和 Linux …

javaee spring 自动注入,如果满足条件的类有多个如何区别

如图IDrinkDao有两个实现类 方法一 方法二 Resource(name“对象名”) Resource(name"oracleDrinkDao") private IDrinkDao drinkDao;

.NET 操作 TDengine .NET ORM

TDengine 是国内比较流的时序库之一,支持群集并且免费,在.NET中资料比较少,这篇文章主要介绍SqlSugar ORM来操作TDengine 优点: 1、SqlSugar支持ADO.NET操作来实现TDengine,并且支持了常用的时间函数、支持联表、分…

LeetCode--HOT100题(43)

目录 题目描述:98. 验证二叉搜索树(中等)题目接口解题思路代码 PS: 题目描述:98. 验证二叉搜索树(中等) 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定…

2023年6月GESP C++ 三级试卷解析

2023年6月GESP C 三级试卷解析 一、单选题(每题2分,共30分) 1.高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A.编辑 B.保存 C.调试 D.编译 【答案】D 【考纲知识点…

iOS 如何对整张图分别局部磨砂,并完全贴合

官方磨砂方式 - (UIVisualEffectView *)effectView{if(!_effectView){UIBlurEffect *blur [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];_effectView [[UIVisualEffectView alloc] initWithEffect:blur];}return _effectView; }使用这种方式对一张图的上半部分和…

2022年09月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;最长上升子序列 一个数的序列bi&#xff0c;当b1 < b2 < … < bS的时候&#xff0c;我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN)&#xff0c;我们可以得到一些上升的子序列(ai1, ai2, …, aiK)&#xff0c;这里1 < i1 < i2 &…

分布式与微服务相关知识

分布式与微服务 1.zookeeper是什么2.zookeeper保证数据一致性3.zookeeper的快速领导者选举是怎么实现的4.CAP理论5.BASE理论6.分布式id生成方案&#xff08;1&#xff09;UUID&#xff08;2&#xff09;数据库自增序列&#xff08;3&#xff09;Leaf-segment&#xff08;4&…

基于全新电脑环境安装pytorch的GPU版本

前言&#xff1a; 距离第一次安装深度学习的GPU环境已经过去了4年多&#xff08;当时TensorFlow特别麻烦&#xff09;&#xff0c;现在发现安装pytorch的GPU版本还是很简单方便的&#xff0c;流程记录如下。 安装步骤&#xff1a; 步骤一&#xff1a;官网下载Anaconda Free…

齐套检查与分配在生产计划中的实现

最近一段时间看到很多关于生产计划中&#xff0c;作齐套检查与分析讨论&#xff0c;正好我们的易排1.5版添加了类似功能。本文结合易排平台上相应的功能与特征&#xff0c;介绍一下我们在这方面的些许研究结论与看法。 本文中用到些引用自易排平台的概念&#xff0c;先行给出定…

c#设计模式-结构型模式 之 外观模式

概述 外观模式&#xff08;Facade Pattern&#xff09;又名门面模式&#xff0c;隐藏系统的复杂性&#xff0c;并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式&#xff0c;它向现有的系统添加一个接口&#xff0c;来隐藏系统的复杂性。该模式…

pytorch下的scatter、sparse安装

知道自己下载的torch配置 import torch print(torch.__version__) print(torch.version.cuda)进入网站&#xff0c;选择自己配置 https://pytorch-geometric.com/whl/下载相应的包 安装 pip install ******.whl

Hbase-技术文档-java.net.UnknownHostException: 不知道这样的主机。 (e64682f1b276)

问题描述&#xff1a; 在使用spring-boot操作habse的时候&#xff0c;在对habse进行操作的时候出现这个问题。。 报错信息如下&#xff1a; 第一段报错&#xff1a; 第二段报错&#xff1a; java.net.UnknownHostException: e64682f1b276 问题定位解读&#xff1a; 错误 ja…

【ArcGIS Pro二次开发】(62):复制字段

应网友需求&#xff0c;做了这么一个复制字段的小工具。 假定这样一个场景&#xff0c;手头有一个要素1&#xff0c;要素里有10个字段&#xff0c;另一个要素2&#xff0c;除了shape_area等图形字段外&#xff0c;没有其它字段。 现在的需求是&#xff0c;想把要素1中的8个字…