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

关键字:

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

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

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

内建常量: true false iota nil内建类型: int int8 int16 int32 int64uint uint8 uint16 uint32 uint64 uintptrfloat32 float64 complex128 complex64bool byte rune string error内建函数: make len cap new append copy close deletecomplex real imagpanic recover

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

// 相当于给int起了别名为INT,并在后续直接使用INT作为数据类型
type INT intfunc main() {var num INT = 5fmt.Println("num的数据类型为:",reflect.TypeOf(num))
}

输出:

main.INT

go命令:

Go是一门编译型语言,Go语言的工具链将源代码及其依赖转换成计算机的机器指令。

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

Go语言提供的工具都通过一个单独的命令go调用,go命令有一系列子命令。

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

使用go build可以保存编译的结果便于再次使用,这个命令生成一个可执行的二进制文件(注:Windows系统下生成的可执行文件是.exe后缀名),可以随时运行它(在Windows系统下在命令行直接输入***.exe命令运行,或双击运行),在Mac和Linux上生成的是一个二进制文件,双击运行。

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换页
\tTab
\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所属数据类型
%UUnicode 字符
%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)// 打印内存地址

注意:

  1. go的源文件,可以通过编译器将其编译成可以识别的二进制文件,编译时一定要为.go结尾
  2. 在该源文件目录下,通过go build对文件进行编译,可以生成可执行的文件,在win下是.exe文件,在mac/linux下是可执行文件
  3. go是一行一行编译的,在代码里一行只能写一条语句
  4. go写完一条语句不需要写分号,编译器会在每一行结尾自动加上分号,如果一定要在一行中写多个语句要手动加分号隔开
  5. go语言定义的变量或import未使用,在编译时会报错,可以通过规避报错

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

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

相关文章

并发编程概念、程序线程进程、线程同步、互斥量、读写锁、协程并发

多线程: 多线程就是同时执行多个应用程序,需要硬件的支持同时执行:不是某个时间段同时,cpu切换的比较快,所有用户会感觉是在同时运行 并发与并行: 并行(parallel):指在同一时刻,有多…

第4阶段——制作根文件系统之分析init_post()如何启动第1个程序(1)

本章学习如何启动第一个应用程序 1.在前面的分析中我们了解到,在init进程中内核挂接到根文件系统之后,会开始启动第一个应用程序: kernel_init函数代码如下: static int __init kernel_init(void * unused) //进入init进程 …

Golang并发——并发技术Goroutine和channel的使用、定时器、生产者消费者、条件变量、select

Goroutine: goroutine是Go并行设计的核心。goroutine说到底其实就是协程,它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需极少的栈内存(大概是4~5KB)&#x…

Oozie协作框架

Oozie协作框架 一:概述 1.大数据协作框架 2.Hadoop的任务调度 3.Oozie的三大功能 Oozie Workflow jobs Oozie Coordinator jobs Oozie Bundle 4.Oozie的架构 控制流节点 起始,分支,并发,汇合,结束 动作节点action 5.O…

11.4 专利法与反不正当竞争法解读

第六条是对于职务作品的一个定性.它这个职务作品、职务发明创造和我们前面著作法所讲到的职务作品的处理方式基本一致.就是如果认定某一个作品它是属于职务作品、职务发明创造,那么这一个作品它的专利权应该是属于单位而不是个人.只有认定这个创造为非职务发明创造的时候,申请的…

一文入门网络编程:常见协议、通信过程、Socket、CS/BS、TCP/UDP

网络编程三要素:ip地址、端口、协议,在网络通信协议下,不同计算机上运行的程序,可以进行数据传输 常见协议: 传输层 常见协议有TCP/UDP协议。应用层 常见的协议有HTTP协议,FTP协议。网络层 常见协议有IP协议…

【Linux笔记(000) 】-- 系统启动过程

索引: 目录索引 一. 启动流程 BIOS --> MBR(Boot Code) --> 引导程序(GRUB) --> 加载内核 --> 执行Init --> runlevel 二. 内容详解 BIOS: Basic Input Output System , 基本输入输出系统 ,负责检查硬件,查找启动设备, 可启动设备在BIOS中定义。…

Golang——TCP、UDP实现并发(服务端与客户端)

Server端常用函数、接口: Listen函数:func Listen(network, address string) (Listener, error)network:选用的协议:TCP、UDP, 如:“tcp”或 “udp”address:IP地址端口号, 如:…

java中 将字符串时间 '2015-9-8 17:05:06' 转化为格式 '2015-09-08 17:05:06'

/** * 将字符串时间2015-9-8 17:05:06转化为格式2015-09-08 17:05:06 */import java.text.SimpleDateFormat; public class TestDate{ public static void main(String[] args) throws Exception{ String time "2015-9-8 17:05:06";//注意:时分秒必须都…

详解TCP协议三次握手四次挥手

三次握手: 三次握手表示建立通信阶段,在TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠,由于这种面向连接的特性, TCP协议可以保证传输数据的安全,…

Golang——实现文件传输

借助TCP完成文件的传输,基本思路如下: 发送方(客户端)向服务端发送文件名,服务端保存该文件名。接收方(服务端)向客户端返回一个消息ok,确认文件名保存成功。发送方(客户…

Golang——HTTP编程请求和响应实现

请求: HTTP 请求报文由请求行、请求头部、空行、请求包体4个部分组成,如下图所示: 请求行: 请求行由方法字段、URL 字段 和HTTP 协议版本字段 3个部分组成,他们之间使用空格隔开。常用的 HTTP 请求方法有 GET、POST。…

zabbix v3.0安装部署【转】

关于zabbix及相关服务软件版本: Linux:oracle linux 6.5 nginx:1.9.15 MySQL:5.5.49 PHP:5.5.35 一、安装nginx: 安装依赖包: yum -y install gcc gcc-c autoconf automake zlib zlib-devel ope…

WeChatTweak-微信小助手安装教程

github下载:https://github.com/Sunnyyoung/WeChatTweak-macOS CSDN下载:https://download.csdn.net/download/weixin_45477086/83895866 双击解压下载的WeChatTweak-macOS-***.zip在终端输入cd ,并敲一个空格,然后把解压的文件夹拖到终端 …

nodejs开发工具

我选择的是Hbuilder作为node项目的开发工具。先在Hbuilder 里面安装nodeEclipse插件,然后重启工具。点击添加项目,选择其他选项,出现下图选项,然后选择圈住的选项点击下一步:3. 如果不使用缺省位置,那么你的路径一定要…

排序之外部排序

有时,待排序的文件很大,计算机内存不能容纳整个文件,这时候对文件就不能使用内部排序了(这里做一下说明,其实所有的排序都是在内存中做的,这里说的内部排序是指待排序的内容在内存中就可以完成,…

Golang——Json的序列化和反序列化

JSON: JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写…

安装配置 flannel - 每天5分钟玩转 Docker 容器技术(59)

上一节我们部署了 etcd,本节安装和配置 flannel。 build flannel flannel 没有现成的执行文件可用,必须自己 build,最可靠的方法是在 Docker 容器中 build。不过用于做 build 的 docker 镜像托管在 gcr.io,国内可能无法直接访问&a…

人人都是产品经理?

产品经理顾名思义就是产品经理。那么只要搞懂产品是什么、经理又什么什么,就明白了产品经理是什么。 产品是什么: 产品是满足需求的载体,能被市场、人们使用和消费,并能满足人们某种需求(创造价值)的任何东…

搭建一个简单的FTP服务器

本文介绍通过win7自带的IIS来搭建一个只能实现基本功能的FTP服务器,第一次装好WIN7后我愣是没整出来,后来查了一下网上资料经过试验后搭建成功,其实原理和步骤与windows前期的版本差不多,主要是对新的操作系统还不是很熟悉。相信用…