Go_关键字、编译、转义字符

2023-11-20

关键字:

关键字是指被go语言赋予了特殊含义的单词,共25个,关键字不能用于自定义名字,只能在特定语法结构中使用。

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

此外,还有大约30多个预定义的名字,比如int和true等,主要对应内建的常量、类型和函数。这些内部预先定义的名字并不是关键字,可以在重新定义并使用它们。

内建常量: true false iota nil

内建类型: int int8 int16 int32 int64
          uint uint8 uint16 uint32 uint64 uintptr
          float32 float64 complex128 complex64
          bool byte rune string error

内建函数: make len cap new append copy close delete
          complex real imag
          panic recover

如何修改这些预定义名字呢,使用type关键字即可

// 相当于给int起了别名为INT,并在后续直接使用INT作为数据类型
type INT int

func main() {
	var num INT = 5
	fmt.Println("num的数据类型为:",reflect.TypeOf(num))
}

输出:

main.INT

go命令:

Go语言原生支持Unicode,它可以处理全世界任何语言的文本。

Go是一门编译型语言,Go语言的工具链将源代码及其依赖转换成计算机的机器指令。Go语言提供的工具都通过一个单独的命令go调用,go命令有一系列子命令。

go run这个子命令可以编译一个或多个以.go结尾的源文件

使用go build可以保存编译的结果便于再次使用,这个命令生成一个可执行的二进制文件

  • Windows:生成的是.exe的后缀文件,在命令行输入***.exe或双击运行

  • Mac、Linux:生成的是.sh后缀文件,可在终端输入***.sh或双击运行

build和run区别:

  • build会先编译成当前系统的二进制可执行文件,再运行出结果,可执行文件可以在没有go的开发环境终端运行,正是因为build后可以在没有开发环境的终端运行,所以编译文件会很大,因为里面集成了很多需要运行go程序的代码。

  • run是把编译+运行放在一步去做了,不会生成可执行文件,只能在有go开发环境的终端运行。

在这里插入图片描述

  1. 先编译再运行(推荐build)
go build 文件名.go
  1. 直接运行
go run 文件名.go
  1. 可以自定义生成可执行文件名,在mac/linux上是可执行文件,在window下必须是.exe后缀
go build -o 自定义文件名 原文件名

// mac
go build -o myHelloWorld HelloWorld.go

//win
go build -o myHelloWorld.exe HelloWorld.go

Go转义字符:

在Go语言中字符与字符串输出时可以用转义字符修饰,使用反斜杠、百分号修饰,第一个\或%表示是一个转义符,第二个符号表示具体的功能

符号 含义
\f 换页
\t Tab
\n 换行
\r 回车,将\r后面的数据写到\r前面执行的数据上,会覆盖索引)
\\ 相当于\

演示:

func main() {
	fmt.Println("aaaaa\r222")
}

输出:原数据aaaaa被222由0索引覆盖

222aa
格 式 描 述
%b 整型以二进制方式显示
%c 字符(不是字符串)
%d 整型以十进制方式显示
%e、%f、%g 浮点数
%o 整型以八进制方式显示
%p 内存地址
%x 整型以十六进制方式显示
%X 整型以十六进制、字母大写方式显示
%s 字符串
%t 布尔值
%T 所属数据类型
%U Unicode 字符
%v 按值的本来值输出
%% 输出 % 本体

演示:

fmt.Printf("%d", num)   //%f输出整型
fmt.Printf("%f", num)   //%f输出浮点数
fmt.Printf("%t", num) //%t输出布尔类型
fmt.Printf("%c", num)// 使用%c可以打印出具体存储的字符
fmt.Printf("%s", num)// %s可以打印字符串
fmt.Printf("%.2f", num) // "%.数字"可以设置保留几位小数,并四舍五入
fmt.Printf("%T", num)    // 打印出数据的类型
fmt.Printf("%t", num) //true
fmt.Printf("%p", &num)// 打印内存地址
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go_关键字、编译、转义字符 的相关文章

  • 【Golang入门】Golang第一天心得

    生活所迫 入门一下Go 很奇葩的第一点 接口 package main import fmt 定义一个接口 type Shape interface Area float64 定义一个矩形类型 type Rectangle struct W
  • Go语言入门【09】结构体

    结构体 相比于Java 在Go语言中没有类的概念 但是多了结构体 结构体与Java中的类很像 是表示一系列同一类型或不同类型的数据构成的数据集合 例如可以将学生抽象成一个结构体 每一个学生有以下属性 Name 姓名 Age 年龄 Gende
  • Golang适合高并发场景的原因分析

    典型的两个现实案例 我们先看两个用Go做消息推送的案例实际处理能力 360消息推送的数据 16台机器 标配 24个硬件线程 64GB内存 Linux Kernel 2 6 32 x86 64 单机80万并发连接 load 0 2 0 4 C
  • go Cobra命令行工具入门

    简介 Github https github com spf13 cobra Star 26 5K Cobra是一个用Go语言实现的命令行工具 并且现在正在被很多项目使用 例如 Kubernetes Hugo和Github CLI等 通过使
  • Golang 内存对齐视频

    https www bilibili com video BV1Ja4y1i7AF 简而言之 就是注意写代码的时候要把相同类型的元素放在一起 更进一步需要自己将结构体配对为32位或64位的整数倍 有助于减少额外空间消耗
  • 为什么最近听说 Go 岗位很少很难?

    大家好 我是煎鱼 其实这个话题已经躺在我的 TODO 里很久了 近来很多社区的小伙伴都私下来交流 也有在朋友圈看到朋友吐槽 Go 上海的大会没什么人 还不如 Rust 大会 比较尴尬 今天主要是看看为什么 Go 岗位看起来近来很难的样子 也
  • 深入理解 Go 语言中的接口(interface)

    一 GoLang 接口的定义 1 GoLang 中的接口 在 Go 语言中接口 interface 是一种类型 一种抽象的类型 接口 interface 定义了一个对象的行为规范 只定义规范不实现 由具体的对象来实现规范的细节 实现接口的条
  • 有哪些不错的 Golang 开源项目?

    目前人在字节做 Go 开发 寻找 Golang 开源项目学习目的可能是 想学习或者提高自己对 Go 项目的组织和编排能力 想学习 Go 项目的框架设计 想在一些 Go 语法上细节的优化和进阶 我推荐两个项目 一 tinode 这是一个开源的
  • 48.Go简要实现令牌桶限流与熔断器并集成到Gin框架中

    文章目录 一 简介 二 限流器与熔断器在微服务中的作用 1 限流器 对某个接口单位时间内的访问量做限制 2 熔断器 当服务连续报错 超过一定阈值时 打开熔断器使得服务不可用 三 具体实现 1 限流器实现逻辑 以令牌桶算法为例 2 限流器集成
  • 【go语言开发】Minio基本使用,包括环境搭建,接口封装和代码测试

    本文主要介绍go语言使用Minio对象存储 首先介绍搭建minio 创建bucket等 然后讲解封装minio客户端接口 包括但不限于 上传文件 下载 获取对象url 最后测试开发的接口 文章目录 前言 Minio docker安装mini
  • 【go语言开发】loglus日志框架的使用

    本文将简单介绍loglus框架的基本使用 并给出demo 文章目录 前言 Loglus常见用法 自定义日志级别 使用字段钩子 输出到多个位置 使用钩子实现自定义日志处理 demo
  • go-zero开发入门之网关往rpc服务传递数据2

    go zero 的网关服务实际是个 go zero 的 API 服务 也就是一个 http 服务 或者说 rest 服务 http 转 grpc 使用了开源的 grpcurl 库 当网关需要往 rpc 服务传递额外的数据 比如鉴权数据的时候
  • go-zero开发入门之网关往rpc服务传递数据1

    go zero 的网关往 rpc 服务传递数据时 可以使用 headers 但需要注意前缀规则 否则会发现数据传递不过去 或者对方取不到数据 go zero 的网关对服务的调用使用了第三方库 grpcurl 入口函数为 InvokeRPC
  • go-zero 的 etcd 配置

    实现代码在 core discov config go 文件中 type EtcdConf struct Hosts string Key string ID int64 json optional User string json opt
  • GoLong的学习之路,进阶,微服务之序列化协议,Protocol Buffers V3

    这章是接上一章 使用 RPC包 序列化中没有详细去讲 因为这一块需要看的和学习的地方很多 并且这一块是RPC中可以说是最重要的一块 也是性能的重要影响因子 今天这篇主要会讲其使用方式 文章目录 Protocol Buffers V3 背景以
  • Go 语言中切片的使用和理解

    切片与数组类似 但更强大和灵活 与数组一样 切片也用于在单个变量中存储相同类型的多个值 然而 与数组不同的是 切片的长度可以根据需要增长和缩小 在 Go 中 有几种创建切片的方法 使用 datatype values 格式 从数组创建切片
  • go开发--操作mysql数据库

    在 Go 中访问 MySQL 数据库并进行读写操作通常需要使用第三方的 MySQL 驱动 Go 中常用的 MySQL 驱动有 github com go sql driver mysql 和 github com go xorm xorm
  • [每周一更]-(第55期):Go的interface

    参考地址 https juejin cn post 6978322067775029261 https gobyexample com interfaces https go dev tour methods 9 介绍下Go的interfa
  • go cannot find package “github.com/gorilla/websocket“解读

    Go无法找到包 github com gorilla websocket 的解决方案 在Go开发过程中 我们经常会依赖第三方库来简化开发工作 而使用 go get 命令安装这些库时 有时候我们可能会遇到类似于以下错误的情况 plaintex
  • Go、Docker、云原生学习笔记全攻略:从零开始,一步步走向精通!(2024版)

    第一章 Go语言学习宝典 一 介绍 01 Go 语言的前生今世 二 开发环境搭建 01 Go 语言开发环境搭建 三 初识GO语言 01 Go 多版本管理工具 02 第一个 Go 程序 hello world 与 main 函数 03 Go

随机推荐

  • Python手册(Scientific Computing)--numpy

    文章目录 NumPy的ndarray 创建ndarray ndarrary索引和切片 ndarrary属性 ndarrary方法 numpy函数 NumPy的random随机库 生成n维随机数组 Numba NumPy Numerical
  • 大话数据结构读书笔记 1---线性表

    大话数据结构读书笔记 编程基础 数据结构 算法 1 线性表 顺序储存结构的结构代码 define MAXSIZE 20 储存空间的起始分配量 typedef int ElemType ElemType类型根据实际类型而定 这里假设是int
  • framebuffer驱动详解

    1 framebuffer介绍 1 什么是framebuffer 1 裸机中如何操作LCD 2 OS下操作LCD的难点 显存放在内核中还是应用中是个问题 之前讲的应用和内核之间传递数据用的是copy from usr copy to usr
  • dell灵越笔记本后盖怎么拆_戴尔灵越5584笔记本按键拆卸、安装教程

    最近一直用笔记本 用着用着我发现U键变得迟钝 不灵敏 虽然这是小问题 但对于我的打字造成较大影响 去维修站修又有点浪费 所以就萌生了自己修的念头 发现网上笔记本键帽拆卸的教程不好用 便决定写篇教程 方便他人 第一步 关机 在拆卸笔记本任何部
  • 2023蓝桥杯python 组试题A:2023

    题目 请求出在 12345678 至 98765432 中 有多少个数中完全不包含 2023 完全不包含 2023 是指无论将这个数的哪些数位移除都不能得到 2023 例如 20322175 33220022 都完全不包含 2023 而 2
  • 记录一次生产环境MySQL死锁以及解决思路

    一 背景 1 业务背景 这里因为涉及到公司的业务问题不进行深入讨论 下面换成通用的一些业务场景就是举例 2 技术背景 众所周知 所谓锁的产生本质上是想解决资源竞争问题 在MySQL的前提下 MySQL为了解决事务并发独写的问题 在进行ins
  • Ubuntu查看cuda版本号 cudnn版本号

    cuda版本号 nvcc V nvcc version 若遇到 nvcc command not found 添加环境变量 打开 bashrc 添加环境变量如下 export LD LIBRARY PATH usr local cuda l
  • 常用系统命令

    重定向 cat aa txt gt bbb txt 将输出定向到bbb txt cat aaa txt gt gt bbb txt 输出并追加 查看进程 ps ps ef 显示所有进程 例 ps ef grep mysql 管道符 kill
  • webpack从此不再是我们的痛点 — 核心基础

    webpack一直是前端工程师的痛点 因为他的复杂 分散 loader plugin这些第三方 让我们的学习成本陡然上升 使我们一直对他的配置模棱两可 今天带大家彻底明白他如何配置 摆脱困扰我们很久的痛点 本篇主要是webpack基础配置详
  • Proximal Policy Optimization(PPO)和文本生成

    ChatGPT的RLHF步使用了强化学习PPO算法 PPO是一种策略梯度方法 其交替地进行与环境交互采样数据和使用随机梯度上升优化 代理 目标函数 标准策略梯度方法对每个数据样本执行一次梯度更新 而PPO可以采样一批数据后 对模型进行多次梯
  • 大数据复习笔记——hive

    这次主要讲解一下平常使用较多的数据仓库hive 目录 一 Hive 1 Hive的介绍 2 Hive的搭建模式 a 内嵌Derby模式 b Local方式 c Remote方式 3 Hive的数据库和表操作 a 创建数据库 b 删除数据库
  • mysql-bin.index文件_MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)

    Linux下安装初始化完MySQL数据库之后 使用mysqld safe启动mysql数据库 如下发现 启动失败 root SVNServer bin mysqld safe user mysql 或 root SVNServer bin
  • 简单看看很好用的Vite

    前言 Vite对于前端到底需不需要打包提出了自己的观点 在某些情况下他做的确实更好 打包 首先回顾一下什么是打包 从结果导向来看 打包使得开发人员所写的代码和最终运行的代码是不甚相同的两个样子 这样做有什么好处呢 在HTTP2普及之前 浏览
  • 相机开启图像采集与结束图像采集的步骤

    如何开启图像采集线程与关闭该线程 步骤如下 一 按下采集按钮 开始创建一个图像采集线程 ch 按下开始采集按钮 en Click Start button void CBasicDemoDlg OnBnClickedStartGrabbin
  • ASI ‘CFNetwork SSLHandshake failed (-9824)‘

    文章目录 ASI CFNetwork SSLHandshake failed 9824 问题 解决 思考 参考 ASI CFNetwork SSLHandshake failed 9824 10年的老项目 网络库使用是ASIHTTPRequ
  • 微信小程序自动化测试pytest版工具使用方法

    mini https github com zx490336534 pytest mini 微信小程序自动化测试pytest插件 工具 基于MiniTest进行pytest改造 使用方法 准备测试小程序 根据miniprogram demo
  • 自己动手写操作系统(一)

    本系列文章将一步步实现一个简单的操作系统 实验环境是在Linux系统下通过Bochs虚拟机运行我们自己写的操作系统 一 实验环境搭建 1 Ubuntu的安装 Windows用户可以选择在虚拟机中安装Ubuntu 具体安装教程可自行搜索 2
  • UDIMM、LRDIMM、RDIMM三种内存的区别

    目前使用的内存条类型 DIMM 主要有三种 UDIMM RDIMM和LRDIMM UDIMM UDIMM 全称Unbuffered DIMM 即无缓冲双列直插内存模块 指地址和控制信号不经缓冲器 无需做任何时序调整 直接到达DIMM上的DR
  • JavaScript Array splice() 方法

    定义 splice 方法向 从数组添加 删除项目 并返回删除的项目 用法 array splice index howmany item1 itemX 参数 index index 必需 类型为整数 指定在什么位置添加 删除项目 使用负值指
  • Go_关键字、编译、转义字符

    关键字 关键字是指被go语言赋予了特殊含义的单词 共25个 关键字不能用于自定义名字 只能在特定语法结构中使用 break default func interface select case defer go map struct cha