【Golang】Go语言基础语法

Go语言基础语法

文章目录

  • Go语言基础语法
    • 一、Go标记
    • 二、行分隔符
    • 三、注释
    • 四、标识符
    • 五、字符串连接
    • 六、关键字
    • 七、Go语言的空格
    • 八、格式化字符串

一、Go标记

  • Go程序可以由多个标记组成吗,可以是关键字、标识符、常量、字符串、符号。如下Go语句由6个标记组成:
fmt.Println("Hello,World!")
  • 6个标记是(每一行一个)
1. fmt
2. .
3. Println
4. (
5. "Hello,World!"
6. )

二、行分隔符

  • 在Go程序中,一行代表一个语句结束。每个语句不需要像C家族中的其他语言一样以分号;结尾,因为这些工作都将由Go编辑器自动完成。
  • 如果你打算将多个语句写在同一行,它们则必须使用;人为区分,但在实际中我们并不鼓励这种做法:
fmt.Println("Hello,World!")
fmt.Println("你好世界")

三、注释

  • 注释不会被编译,每一个包应该有相关注释
  • 单行注释是最常见的注释形式,你可以在任何地方使用以//开头的单行注释。多行注释也叫块注释,均以/*,并以*/结尾。如:
// 单行注释/*
我是多行注释
你是什么注释
*/

四、标识符

  • 标识符用来命令变量、类型等程序实体。一个表示符实际上就是一个或多个字母(AZ和az)数字(0-9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

  • 以下是有效的标识符

# 以下都是可以正常被使用的标识符
mahesh 
kumar 
abc
move_name
a_123
myname50
_temp
j
a23b9
retVal# 以下是无效的表示符
1ab(以数字开头)
case(Go语言的关键字)
a+b(运算符是不允许的)

五、字符串连接

  • Go语言的字符串连接可以通过+实现:
package mainimport "fmt"func main() {fmt.Println("你好"+"Go")}
  • 以上实例输出结果为
$ go run hello.go 
你好Go

六、关键字

  • 下面列举了Go代码中会使用到25个关键字或保留字:
breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar
  • 除了以上介绍的这些关键字,Go语言还有36个预定义标识符:
appendboolbytecapclosecomplexcomplex64complex128uint16
copyfalsefloat32float64imagintint8int16uint32
int32int64iotalenmakenewnilpanicuni64
printpringlnrealrecoverstringtrueuintuint8uintprt
  • 程序一般由关键字、常量、变量、运算符、类型和函数组成
  • 程序中可能会使用到这些分隔符:括号(),中括号[]和大括号{}
  • 程序中可能会使用到这些标点符号:.,;,:...

七、Go语言的空格

  • 在Go语言中,空格通常使用分割标识符、关键字、运算符和表达式,以提高代码的可读性
  • Go语言中变量的声明必须使用空格隔开,如:
var x int  // 定义x变量的类型为int 整数
const Pi float64 = 3.1415926  // 定义常量 类型为float64浮点型 值为3.1415926
  • 在运算符和操作数之间要使用空格能让程序更易阅读
frunt=5+8  // 不规范写法frunt = 5 + 8  //规范写法,更加美观
  • 在关键字和表达式之间要使用空格
package mainimport "fmt"func main() {var wzh =6+1;if wzh > 0 {fmt.Println(wzh)}}
  • 在函数调用时,函数名和左边等号之间要使用空格,参数之间也要使用空格
result := add(2,3)

八、格式化字符串

  • Go语言中使用fmt.Sprintffmt.Printf格式化字符串并赋值给新串:
    • Sprintf根据格式化参数生成格式化的字符串并返回该字符串
    • Printf根据格式化参数生成格式化的字符串并写入标准输出
package mainimport "fmt"func main() {// %d 表示整型数字,%s 表示字符串  可以理解为占位符var stockcode int = 123var enddate string = "2024-11-9"var url string = "Code=%d&endDate=%s"var target_url = fmt.Sprintf(url,stockcode,enddate)fmt.Println(target_url)
}
  • 输出结果为
Code=123&endDate=2024-11-9
  • 以下是使用Printf的效果
package mainimport "fmt"func main() {// %d 表示整型数字,%s 表示字符串  可以理解为占位符var stockcode int = 123var enddate string = "2024-11-9"var url string = "Code=%d&endDate=%s"fmt.Printf(url, stockcode, enddate)
}
  • 输出结果为
Code=123&endDate=2024-11-9

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

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

相关文章

WebRTC指纹——深度分析(中篇)

1. 引言 在上篇中,我们建立了WebRTC审查规避系统分析的理论基础,探讨了技术背景和威胁模型。中篇将深入分析WebRTC协议栈中的具体识别特征,通过对多个主流WebRTC应用的实际协议分析,揭示不同实现之间存在的显著差异。 这些协议层面的特征差异构成了审查系统进行指纹识别的…

谷粒商城篇章13--P340-P360--k8s/KubeSphere【高可用集群篇一】

1 k8s 1.1 简介 Kubernetes 简称 k8s。 是用于自动部署, 扩展和管理容器化应用程序的开源系统。 中文官网: https://kubernetes.io/zh/ 中文社区: https://www.kubernetes.org.cn/ 官方文档: https://kubernetes.io/zh/docs/h…

从零搭建 OpenCV 项目(新手向)-- 第二天 OpenCV图像预处理(一)

目录 一、图像翻转(镜像翻转) 1. 定义 2. OpenCV 函数 3. 数学表达 二、图像仿射变换 1. 定义 2. 仿射变换的基本原理 3. OpenCV 函数 4. 图像旋转 5. 图像平移 6. 图像缩放 7. 图像剪切 8. 为什么会出现黑色背景? 三、图像色彩…

贪心算法Day6学习心得

第一道:738. 单调递增的数字 - 力扣(LeetCode) 这道题目暴力算法肯定是最容易想到的,先附上暴力的代码: class Solution { private:// 判断一个数字的各位上是否是递增bool checkNum(int num) {int max 10;while (n…

数据的评估与清洗篇---上手清理索引和列名

重命名索引和列名 在读取数据时,如果我们发现数据的索引或者列名乱七八糟的,可以使用DataFrame的rename方法对它们进行重新命名。 df1.rename(index={...})df1.rename(columns={...}) 重命名索引 如果想改索引就把可选参数index指定为一个字典,针对索引,把要修改…

【ICML2025】时间序列|TimePro:炸裂!线性复杂度实现高效长程多元时间序列预测!

论文地址:https://arxiv.org/pdf/2505.20774 代码地址:https://github.com/xwmaxwma/TimePro 为了更好地理解时间序列模型的理论与实现,推荐参考UP “ThePPP时间序列” 的教学视频。该系列内容系统介绍了时间序列相关知识,并提供配…

2025真实面试试题分析-iOS客户端开发

以下是对iOS客户端开发工程师面试问题的分类整理、领域占比分析及高频问题精选(基于​​85道问题,总出现次数118次​​)。按技术领域整合为​​7大核心类别​​,按占比排序并精选高频问题标注优先级(1-5🌟&…

计算机网络简答题(大雪圣期末参考资料)

1、网络性能指标/计算机网络有哪些常用的性能指标?答:速率,带宽,吞吐量,时延(发送时延、传播时延、处理时延、排队时延),时延带宽积,往返时间RTT和信道(或网络…

红宝书单词学习笔记 list 76-100

list 76NO.WordMeaning1staleadj. 不新鲜的;陈腐的2stalln. 小隔间;摊位;牲畜棚;v. 停顿;(使) 熄火;故意拖延3staplen. 订书钉;主要产品;主要部分;主食;v. 用…

Vue3 学习教程,从入门到精通,Vue 3 计算属性(Computed Properties)知识点详解与案例代码(15)

Vue 3 计算属性(Computed Properties)知识点详解与案例代码 在 Vue 3 中,计算属性(Computed Properties) 是用于基于响应式数据派生新数据的一种方式。计算属性具有以下特点: 缓存性:只有在依赖…

2.5 PN-PTCP

Profinet Precision Transparent Clock Protocol (PN-PTCP) PN-PTCP(精确透明时钟协议)是一种专用于 Profinet 的 二层协议,其作用是为网络中的设备提供高精度的时间同步。用于实现网络设备的高精度时间同步。

WordPress与Typecho站点CloudFlare缓存优化实战指南

文章目录 WordPress与Typecho站点CloudFlare缓存加速全攻略 引言 一、CloudFlare缓存基础原理 1.1 CloudFlare工作流程 1.2 缓存类型 二、基础配置指南 2.1 CloudFlare账户设置 2.2 缓存配置 2.3 页面规则设置 三、高级缓存策略 3.1 动态内容缓存 WordPress方案: Typecho方案:…

【OpenCV实现多图像拼接】

文章目录1 OpenCV 图像拼接核心原理2 OpenCV 图像拼接实现代码方法一:使用 OpenCV 内置 Stitcher 类(推荐)方法二:手动实现核心步骤关键参数说明3 常见问题处理4 增量式图像拼接(Incremental Image Stitching&#xff…

haproxy 算法

一、静态算法按照事先定义好的规则轮询公平调度,不关心后端服务器的当前负载、连接数和响应速度 等,且无法实时修改权重(只能为0和1,不支持其它值),只能靠重启HAProxy生效。(不管后端死活)1.1、static-rr:基于权重的轮…

Go 的第一类对象与闭包

1. Go 的第一类对象(First-Class Citizens) 什么是第一类对象? 第一类对象是指能够像 普通值 一样使用的对象,通常可以赋值给变量、传递给函数、作为函数返回值等。在很多编程语言中,函数本身不被视为第一类对象&#…

深度分析Android多线程编程

理解并正确运用多线程是构建高性能、流畅、响应迅速的 Android 应用的关键,但也充满挑战和陷阱。 核心挑战:UI 线程(主线程)的限制 唯一性: Android 应用只有一个主线程,负责处理所有用户交互(触…

uniapp在app中关于解决输入框键盘弹出后遮住输入框问题

问题描述: uniapp的app中,当表单页面过长时,点击下方的输入框时,弹出键盘后会把输入框给挡住,导致看不到输入内容。 解决方案: 在page.json中,找到此页面的配置,加上style中的softin…

二分查找----5.寻找旋转排序数组中的最小值

题目链接 /** 数组在某处进行旋转,分割为两个独立的递增区间,找出数组的最小值;特殊情况:若旋转次数是数组长度的倍数,则数组不变 特点: 常规情况: 数组被分割为两个独立的子区间,左半区的最小值大于右半区的最大值 依据数组长度,mid可能落在左半区也有可能落在右半区,最小值在…

Eureka-服务注册,服务发现

在远程调用的时候&#xff0c;我们写的url是写死的。 String url "<http://127.0.0.1:9090/product/>" orderInfo.getProductId();当换个机器&#xff0c;或者新增个机器&#xff0c;导致ip变换&#xff0c;从而使得 url 发生了变化&#xff0c;接着就需要去…

ubuntu24的一些小问题

截图Keyboard -> Keyboard Shortcus -> View and customize Shortcus如上&#xff0c;可以修改默认的快捷按键。比如截图按键可以修改。 ibus输入法无法&#xff0c;输入V异常问题 也是困扰了很久&#xff0c;发现是这样的&#xff1a;https://github.com/libpinyin/ibus…