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

news2024/9/23 10:13:05

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 main

import "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.coloradmin.cn/o/935685.html

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

相关文章

c++中的基本类型

专栏简介:为什么我要重新介绍c的相关知识,在此之前,我对于c的了解也仅仅是在表面。而在后来与c慢慢的接触中,c编程语言越来越让我觉得深奥,所以还是想要重新开创一个专栏来介绍c。对于c的介绍,本专栏会先介…

学会shell 基本语法,玩转linux

01、获取当前时间,年月日时分秒 now$(date %Y%m%d%H%M%S) echo "$now" 输出为:20181202222727 02、date 在脚本中的几种用法 date %Y 以 4 位数字格式打印年份 date %y 以 2 位数字格式打印年份 date %m 月份 date %d 日期 date %H 小时 d…

IO模型和NGINX安装升级

IO模型和NGINX安装升级 IO模型 IO概念 I/O在计算机中指Input/Output, IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。 Linux的IO类型 磁盘I/O 磁盘I/O是进程向内核发起系统调用,请求磁…

抖店出单后怎么操作?谈厂家话术与发货注意事项,抖店最新教程

我是王路飞。 当你的抖店出单后,你是怎么操作的? 还是像之前那样去拼多多代拍发货?这样做的商家,不知道你的店铺被封了几个了? 记住,现在抖店出单后,一定不要再去多多拍单发货了! 关于抖店…

0基础入门C++之类和对象下篇

目录 1.再谈构造函数1.1构造函数赋值1.2初始化列表1.3explicit关键字 2.static成员2.1概念2.1静态成员变量2.2静态成员函数2.3特性 3.匿名对象4.友元函数4.1友元函数4.2友元类 5.内部类6.再次理解类和对象 1.再谈构造函数 首先我们先来回忆一下构造函数: 构造函数是…

【springboot】springboot定时任务:

文章目录 一、文档:二、案例: 一、文档: 【cron表达式在线生成器】https://cron.qqe2.com/ 二、案例: EnableScheduling //开启任务调度package com.sky.task;import com.sky.entity.Orders; import com.sky.mapper.OrderMapper; …

CAN总线学习——物理层、数据链路层、CANopen协议

1、CAN总线介绍 1.1、CAN总线描述 (1)CAN总线支持多节点通信,但是节点不分区主从,也就是不存在一个节点来负责维护总线的通信;这点可以和I2C总线对对比,I2C是一主多从模式; (2)是差分、异步、串行总线,采用…

分布式—雪花算法生成ID

一、简介 1、雪花算法的组成: 由64个Bit(比特)位组成的long类型的数字 0 | 0000000000 0000000000 0000000000 000000000 | 00000 | 00000 | 000000000000 1个bit:符号位,始终为0。 41个bit:时间戳,精确到毫秒级别&a…

Python slice(切片)

在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素,这里的范围不是狭义上的连续片段。 切片的基本语法为: object…

ChromeOS 的 Linux 操作系统和 Chrome 浏览器分离

导读科技媒体 Ars Technica 报道称,谷歌正在将 ChromeOS 的浏览器从操作系统中分离出来 —— 让它变得更像 Linux。虽然目前还没有任何官方消息,但这项变化可能会在本月的版本更新中推出。 据介绍,谷歌将该项目命名为 "Lacros"——…

防溺水预警识别系统算法

防溺水预警识别系统旨在通过opencvpython网络模型深度学习算法,防溺水预警识别系统算法实时监测河道环境,对学生等违规下水游泳等危险行为进行预警和提醒。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行&#xff0…

strcat函数

目录 函数介绍: 函数声明: 具体使用: 注意事项: 字符串⾃⼰给⾃⼰追加,如何? 模拟实现strcat函数: 函数介绍: 被称为字符串的追加/链接函数,它的功能就是在一个字符…

gcc/linux下的c++异常实现

概述 本文不一定具有很好的说教性,仅作为自我学习的笔记。不妨可参阅国外大神博文C exceptions under the hood链接中包含了大量的例子。 偶有在对ELF做分析的时候看到如下图一些注释,部分关键字看不懂,比如什么FDE, unwind , __gxx_perso…

【技巧分享】如何获取子窗体选择了多少记录数?一招搞定!

Hi,大家好久不见。 我这个更新速度是不是太慢了呀,因为,最近又又又在忙,请大家谅解啦。 现在更新文章、视频都要花好久去考虑,好不容易有个灵感了,一搜索,结果发现之前都已经分享过了(委屈脸&…

Nginx详解 第三部分:Nginx高级配置(附配置实例)

Part 3 一、网页的状态页二、Nginx第三方模块2.1 echo 模块 三、变量3.1 内置变量3.1.1 常用内置变量3.1.2 举个例子 3.2 自定义变量 四、自定义访问日志 (优化)4.1 自定义访问日志的格式4.2 自定义json 格式日志 五、Nginx压缩功能(重要)六、HTTPS 功能…

SMC_Interpolator2Dir反向插补运动

附加函数是: SMC_Interpolator2Dir_SlowTask 函数的位置: 输入: 运行 bExecute 【BOOL】 路径包 poqDataIn 指向SMC_OUTQUEUE的指针 停止 bSlow_Stop 停止BOOL 急停 bEmergency_Stop 紧急停止BOOL 单…

2023.8 - java - 多态

多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作, 多态的优点 1. 可替换性2 可扩充性3. 接口性、灵活性、简化性4. 消除类型之间的耦合关系 多态存在的三个必要条件 继承重写父类引用指向子类…

Java“牵手”天猫商品历史价格信息API接口数据,天猫API接口申请指南

天猫平台商品历史价格接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、最低价、当前价格、价格信息等详细信息 。 获取商品历史价格接口API是一种用于获取电商平台…

如何运行imbalanced-streams-master工程?

1 下载和安装JDK和Eclipse 这个步骤网上的教程特别多,在此就不特别叙述了。 2 将imbalanced-streams-master工程解压并引入 2.1 解压 特别要注意的是:解压的文件夹和workspace一定不要在同一个目录。 解压后的目录结构如下: 2.2 import…

图片换脸-->>视频换脸-->>直播换脸

资源网站:https://tianfeng.space/ 个人娱乐,切勿作恶 下载 ​ 网盘:链接:https://pan.baidu.com/s/1DHMY1mCXpT0OtpmlvIoMKA 提取码:nf57 使用 下载解压后,打开 第一个就是你要替换的人脸,…