go学习之go的语法知识

news2025/1/7 12:25:04

文章目录

    • 1.go语言开发注意事项
    • 2.golang常用的转义字符(escape char)
    • 3.golang开发常用的问题
        • 小结与提示:
    • 4.go语言注释类型
      • (1).注释类型
        • 1)行注释
        • 2)块注释(多行注释)
      • (2)使用细节:
        • 1).对于行注释和块注释,被注释的文字,不会被go编辑器执行
        • 2)块注释里面不允许有块注释嵌套
      • (3).规范的代码风格
    • 5.Dos的常用命令(针对windows系统)
    • 6.本章知识回顾

1.go语言开发注意事项

1)go源文件以"go"为扩展名

2)go应用程序的执行入口是main函数。

package main //引入main包
func main(){ //调用main函数

}

3)go语言严格区分大小写

4)go方法、一由条条语句构成,每个语句后不需要分号(go语言会在每行后自动加上分号),这也体现出go语言的简洁性

fmt.Println("hello world")  //后面不需要加上分号

5)go编译是一行一行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则会报错

package main  //把这个test.go归属到main
import "fmt"  //引入一个包 
func main() {
	//输出hello
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	fmt.Println("hello world")
	//下面是错的
	fmt.Println("hello world") fmt.Println("hello world") 

}

6)go语言定义的变量或者import的包如果没有使用到,代码不能编译通过

7)大括号都是成对出现的,缺一不可

2.golang常用的转义字符(escape char)

1) \t  一个制表位,实现对齐的功能
2) \n  换行符
3) \\ 一个\
3) \" 一个"
5) \r 一个回车 fmt.println("天龙八部雪山飞龙\r张飞")

package main

import "fmt" //fmt包主要提供格式化和输入的函数
func main() {
	//演示转义字符的使用

	fmt.Println("tom\tjack")
	fmt.Println("D:\\myfile\\GO\\project\\src\\go_code\\escapechar")
	fmt.Println("tom说\"i love you\"")
	//\r表示回车,从当前行的最前面开始输出,覆盖掉以前的内容
	fmt.Println("天龙八部雪上飞狼\r张飞")
}

//输出的结果
D:\myfile\GO\project\src\go_code\escapechar>go run main.go
tom     jack
D:\myfile\GO\project\src\go_code\escapechar
tom说"i love you"
张飞八部雪上飞狼


练习:
fmt.Println("姓名\t年龄\t籍贯\t住址\njohn\t12\t河北\t北京")
//结果如下:
姓名    年龄    籍贯    住址
john    12      河北    北京

3.golang开发常用的问题

在这里插入图片描述

小结与提示:

学习编程最容易犯的错就语法错误,go要求你必须按照语法规则编写代码,如果你的程序违反了语法规则。例如:忘记了大括号、引导、或者拼错了单词go编译器都会报错,尝试去看懂编译器会报告的错误信息。

4.go语言注释类型

(1).注释类型

go支持C语言风格的/* */块注释,也支持C++风格的//注释,行注释更通用,块注释主要针对包的详情说明或者屏蔽大块的代码

1)行注释

package main

import "fmt" //fmt包主要提供格式化和输入的函数
func main() {
	
    
	//fmt.Println("hello world")
	//fmt.Println("i love you")
	//fmt.Println("i hate you")
	fmt.Println("姓名\t年龄\t籍贯\t住址\njohn\t12\t河北\t北京")
}

2)块注释(多行注释)

package main

import "fmt" //fmt包主要提供格式化和输入的函数
func main() {
    //格式
    /*注释内容*/
	
	/*fmt.Println("hello world")
	fmt.Println("i love you")
	fmt.Println("i hate you")
	*/
	fmt.Println("姓名\t年龄\t籍贯\t住址\njohn\t12\t河北\t北京")
}

(2)使用细节:

1).对于行注释和块注释,被注释的文字,不会被go编辑器执行

2)块注释里面不允许有块注释嵌套

(3).规范的代码风格

1)Go官方推荐使用行注释来注释整个方法语句。

2)要有正确的缩进和空白对程序编写代码

在dos下将go语言的代码显示出来

在这里插入图片描述

运算符的两边习惯性各加一个空格。比如: 2 + 4 * 5.

var num = 2 + 4 * 5

go语言的代码风格

{ 不可以单独占一行

ackage main

import "fmt" //fmt包主要提供格式化和输入的函数
func main() {
	
	
	/*fmt.Println("hello world")
	fmt.Println("i love you")
	fmt.Println("i hate you")
	*/
	fmt.Println("姓名\t年龄\t籍贯\t住址\njohn\t12\t河北\t北京")
	var num = 2 + 4 * 5
	fmt.Println(num)
}

ackage main

以下这种方式是错误的
import "fmt" //fmt包主要提供格式化和输入的函数
func main() 
{//不可以单独占据一行
	/*fmt.Println("hello world")
	fmt.Println("i love you")
	fmt.Println("i hate you")
	*/
	fmt.Println("姓名\t年龄\t籍贯\t住址\njohn\t12\t河北\t北京")
	var num = 2 + 4 * 5
	fmt.Println(num)
}

一行不能超过80个字符

golang官网网站 http://golang.org#

熟练使用官网熟练其api的使用

中文网:http://studygolang.com

golang的包和源文件和函数的关系简图

在这里插入图片描述

要想学好go就多看官网并学习这个API

5.Dos的常用命令(针对windows系统)

目录的操作
md test //创建test目录
md test01 test02 //一下子创建两个目录
dir     //查看当前目录
cd /d f:  //切换到f盘 切换到某个盘符
cd  d:\test //切换到d盘的test100目录  ---绝对路径
cd test //切换到在当前目录的test目录   ---相对路径
cd ..  //切换到上一级目录
cd \  //切换到根目录
rd test01 //删除一个空目录
rd /q/s test01 //删除非空目录,将这个目录下的所有文件都删除 /q表示不用询问
rd /s test01 //以询问的方式删除这个目录

文件的操作
echo hello > abc.txt 将hello追加到一个新的abc.txt文件当中
copy abc.txt d:\test\test03 将abc.txt文件复制到test03目录下面
copy abc.txt d:\test\test03\sd.txt  //复制文件后再重新命名
move abc.txt d:\test\test02  //移动abc.txt文件
del abc.txt //删除一个文件
del *.txt //将所有txt类型的文件
其他指令
cls   //清屏
exit //退出终端

练习:

1)独立编写hello golang的程序

package main

import "fmt" //fmt包主要提供格式化和输入的函数
func main() {
	fmt.Println("hello golang")
}

2)将个人基本信息(姓名,性别,籍贯,住址)打印倒终端上进行输出,每个信息各站一行

package main

import "fmt" //fmt包主要提供格式化和输入的函数
func main() {
	fmt.Println("hello golang")
	//fmt.Println("")
    fmt.Println("刘承传\n男\n中国\n五指峰")
}

6.本章知识回顾

go语言的SDK是什么?

SDK就是啊软件开发工具包,我们做go开发,首先需要安装并配置好‘go

Golang的环境变量配置及其作用

GROOT:指定go sdk的安装目录。

Path:指令 sdk:bin目录 go.exe godoc.exe gofmt.exe

GOPATH 就是go项目的工作目录,所有项目的源码都放在这个目录下面

golang程序的编写、编译、运行的步骤是什么

编写:就是写代码

编译:go build 源码 =》生成一个二进制可执行文件

运行 : 1.对可执行文件运行 2.go run 源码

?**

SDK就是啊软件开发工具包,我们做go开发,首先需要安装并配置好‘go

Golang的环境变量配置及其作用

GROOT:指定go sdk的安装目录。

Path:指令 sdk:bin目录 go.exe godoc.exe gofmt.exe

GOPATH 就是go项目的工作目录,所有项目的源码都放在这个目录下面

golang程序的编写、编译、运行的步骤是什么

编写:就是写代码

编译:go build 源码 =》生成一个二进制可执行文件

运行 : 1.对可执行文件运行 2.go run 源码

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

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

相关文章

CnetSDK .NET OCR SDK Crack

CnetSDK .NET OCR SDK Crack CnetSDK.NET OCR库SDK是一款高度准确的.NET OCR扫描仪软件,用于使用手写、文本和其他符号等图像进行字符识别。它是一款.NET OCR库软件,使用Tesseract OCR引擎技术,可将字符识别准确率提高99%。通过将此.NET OCR扫…

React原理 - React Virtual DOM 原理

目录 扩展学习资料 Virtual DOM 是什么【虚拟dom】 React渲染 Virtual DOM VS 原生DOM【vDom是否比原生Dom更高效】 Virtual DOM数据结构 Virtaual DOM Diff【虚拟dom前后比对,更新不同dom的算法】 源码解读 react源码组织方式: React Stack Rec…

2.含电热联合系统的微电网运行优化

含电热联合系统的微电网运行优化 MATLAB代码:含电热联合系统的微电网运行优化 关键词:微网 电热联合系统 优化调度 参考文档:《含电热联合系统的微电网运行优化》完全复现 仿真平台:MATLAB yalmipcplex [火]主要内容&#xf…

网络安全(黑客)自学剖析

想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全…

基于Jenkins CICD的代码发布与回滚-------从小白到大神之路之学习运维第87天

第四阶段提升 时 间:2023年8月24日 地 点:2304教室 授课人:李凤海 参加人:全班人员 内 容: 基于Jenkins CICD的代码发布与回滚 目录 一、案例概述 二、案例知识点 三、案例环境 (一&#xff0…

C++类成员的访问权限以及类的封装

C通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。 Java、C# 程序员注意,C 中的 publ…

大数据-玩转数据-Flink时间滚动动窗口

一、说明 时间窗口包含一个开始时间戳(包括)和结束时间戳(不包括), 这两个时间戳一起限制了窗口的尺寸. 在代码中, Flink使用TimeWindow这个类来表示基于时间的窗口. 这个类提供了key查询开始时间戳和结束时间戳的方法, 还提供了针对给定的窗口获取它允许的最大时间戳的方法(m…

HTTP原理与实现

一、基本概念 一、基本原理* 1、全称: HyperText Transfer Protocol (超文本传输协议) 2、底层实现协议:建立在 TCP/IP 上的无状态连接。 3、基本作用:用于客户端与服务器之间的通信,规定客户端和服务器之间的通信格式。包括请…

PTS性能测试工具-使用记录

因为PTS使用是要收费的,所以文中会有大量图片记录,为我自己以后工作中,可能会再次使用PTS做个参照,以免时间长,容易忘记~ 目录 一、创建场景 二、填写一个压测节点 1、填写节点基本信息 2、Body / Header填写 …

牡丹宣言|对国潮化妆品品牌的理解

化妆品的国潮概念? ■ 是中国的时代潮流。 ■ 是传统元素与现代元素的碰撞。 ■ 是一股年轻的力量。 ■ 是大国崛起的象征。 ■ 是中国文化自信的体现。 如何正确认知化妆品? ■ 化妆品不是药品 ■ 化妆品是一种观念 ■ 化妆品是一种习惯 ■ 化…

自动化测试工具:Airtest入门教程

目录 1.什么是Airtest? 2.AirtestIDE下载安装 3.如何开始使用 4.Airtest入门特例教程 5.总结 1.什么是Airtest? Airtest是一款基于 Python 的、跨平台的UI自动化测试框架。因为它基于 图像识别 的原理,所以适用于所有 Android、 iOS和 …

Linux系统安装(虚拟机安装;系统分区;Linux系统安装;远程登录管理工具)

文章目录 1. VMware虚拟机安装与使用2. 系统分区2.1 磁盘分区2.2 格式化2.3 硬件设备文件名2.4 分区设备文件名2.5 挂载2.6 文件系统结构2.7 总结 3. Linux系统安装4. 远程登录管理工具 1. VMware虚拟机安装与使用 VMware是一个虚拟PC的软件,可以在现有的操作系统上…

opencv 车牌号的定位和识别+UI界面识别系统

目录 一、实现和完整UI视频效果展示 主界面: 识别结果界面:(识别车牌颜色和车牌号) 查看历史记录界面: 二、原理介绍: 车牌检测->图像灰度化->Canny边缘检测->膨胀与腐蚀 边缘检测及预处理…

【C++11】future和async等

C11的future和async等关键字 1.async和future的概念 std::async 和 std::future 是 C11 引入的标准库功能,用于实现异步编程,使得在多线程环境中更容易处理并行任务。它们可以帮助你在不同线程中执行函数,并且能够方便地获取函数的结果。 在…

mysql(八)事务隔离级别及加锁流程详解

目录 MySQL 锁简介什么是锁锁的作用锁的种类共享排他锁共享锁排它锁 粒度锁全局锁表级锁页级锁行级锁种类 意向锁间隙临键记录锁记录锁间隙锁 加锁的流程锁的内存结构加锁的基本流程根据主键加锁根据二级索引加锁根据非索引字段查询加锁加锁规律 锁信息查看查看锁的sql语句 数据…

npm install sentry-cli失败的问题

1. 目前报错 2. 终端运行 npm set ENTRYCLI_CDNURLhttps://cdn.npm.taobao.org/dist/sentry-cli npm set sentrycli_cdnurlhttps://cdn.npm.taobao.org/dist/sentry-cli3. 再安装 npx sentry/wizardlatest -i nextjs即可成功

信创测试的应用是什么

信创测试作为评估创意和创新项目的工具,为企业的发展提供了重要的支持和指导。它能够帮助企业降低风险、优化资源配置,促进创意与创新的迭代和改进。其具体应用,小编带大家一起来看看详情吧! 一、产品和服务创新 信创测试可以用于评估新产品和…

linux并发服务器 —— 动态库和静态库实战(一)

-E 预处理指定源文件 -S 编译指定源文件 -c 汇编指定源文件 -o 生成可执行文件 -I directory 指定Include包含文件的搜索目录 -g 编译的时候生成调试信息 -D 在程序编译时指定一个宏 -w 不生成任何的警告信息 -Wall 生成所有警告 -On n:0~3;表示编译器的优…

Kubernetes(K8S)使用PV和PVC做存储安装mysql

Kubernetes使用PV和PVC做存储安装mysql 环境准备什么是PV和PVC环境准备配置nfs安装nfs配置nfs服务端 创建命名空间配置pv和pvcpv的yaml文件pvc的yaml文件 部署mysql创建mysql的root密码的secret创建mysql部署的yaml部署mysql链接mysql外部链接内部链接 环境准备 首先你需要一个…

【路由器】小米 WR30U 解锁并刷机

文章目录 解锁 ssh环境准备解锁过程 刷入 mt798x uboot简介刷入流程 刷入 ImmortalWrt简介刷入流程 刷为原厂固件参考资料 本文主要记录个人对小米 WR30U 路由器的解锁和刷机过程,整体步骤与 一般安装流程 类似,但是由于 WR30U 的解锁 ssh 和刷机的过程中…