编程笔记 Golang基础 008 基本语法规则

编程笔记 Golang基础 008 基本语法规则

Go语言的基本语法规则.

Go语言的基本语法规则包括但不限于以下要点:

  1. 标识符

    • 标识符用于命名变量、常量、类型、函数、包等。
    • 标识符由字母(a-z,A-Z)、数字(0-9)和下划线(_)组成。
    • 标识符不能以数字开头。
    • Go语言严格区分大小写,比如myVariableMyVariable是两个不同的标识符。
    • 标识符中不能包含空格或其他特殊字符。
    • 标识符不能使用Go语言的保留关键字作为名称。
  2. 变量声明

    • 使用var关键字可以显式声明变量,并可指定其数据类型。
    var name string
    
    • 简短声明(简写语法):在函数内部可以使用:=进行变量的声明和初始化,编译器会自动推导变量类型。
    name := "Tom"
    
  3. 基本数据类型

    • 整数类型:int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr
    • 浮点数类型:float32, float64
    • 布尔类型:bool
    • 字符串类型:string
    • 字符类型:rune (实际上是int32,代表一个Unicode码点)
    • 字节类型:byte (实际上是uint8)
  4. 控制结构

    • 条件语句:if, else, switch
    • 循环语句:for, while(通常通过for实现)
    • 跳转语句:break, continue, goto, return
  5. 函数

    • 函数定义需要指定返回类型,如果没有返回值,则为func function_name(参数列表) {}
    • main函数是程序执行的入口点,必须在名为main的包内定义,且无参数无返回值。
  6. 包(Packages)

    • 每个Go源文件属于一个包,通过package关键字指定包名。
    • import关键字用来导入其他包,如标准库或自定义包。
    • 包级别的变量和函数可通过大写字母开头的标识符被外部包访问。
  7. 注释

    • 单行注释:// 这是一个单行注释
    • 多行注释:/* 这是多行注释内容 */
  8. 作用域和可见性

    • 变量的作用域从声明处开始,直到所在块结束。
    • 全局变量可以在整个包内可见,如果首字母大写,也可以在其他包中被引用。
  9. 初始化函数

    • 每个包都可以有一个或多个名为init的函数,它们会在包加载时自动调用,按照依赖关系排序执行。

以上规则构成了Go语言基础语法的核心部分,但并非全部。实际编程中还会涉及接口、并发编程(goroutines和channels)、错误处理等诸多高级特性。

所涉及内容,在后面还要详细解析。

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

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

相关文章

人工智能_CPU安装运行ChatGLM大模型_安装清华开源人工智能AI大模型ChatGlm-6B_004---人工智能工作笔记0099

上一节003节我们安装到最后,本来大模型都可以回答问题了,结果, 5分钟后给出提示,需要GPU,我去..继续看官网,如何配置CPU运行 没办法继续看: https://github.com/THUDM/ChatGLM-6B 这里是官网可以看到 需要gcc的版本是11.3.0,这里我们先没有去安装,直接试试再说 yum instal…

支持Intel Core i5/i7的高性能三防加固平板|亿道三防onerugged

大家好!今天我要向大家推荐一款真正强悍的三防加固平板电脑,它支持Intel Core i5/i7高性能处理器,给你带来无与伦比的高性能体验。是不是心动了呢?那就让我为你揭开这款亿道三防onerugged系列的产品的神秘面纱吧! 首先…

SpringBoot+WebSocket实现即时通讯(四)

前言 紧接着上文《SpringBootWebSocket实现即时通讯(三)》 本博客姊妹篇 SpringBootWebSocket实现即时通讯(一)SpringBootWebSocket实现即时通讯(二)SpringBootWebSocket实现即时通讯(三&…

Visual Studio下载安装教程(非常详细)从零基础入门到精通,看完这一篇就够了

Visual Studio安装教程 一、官网下载 官网下载地址: https://visualstudio.microsoft.com/zh-hans/downloads/ 因为是个人学习用途,所以我这里下载的是社区版本。 下载下来的是一个.exe文件 双击打开后,会加载一些东西。最后出现下面的界面…

小程序缓存封装 storage

const postfix _expiry // 缓存有效期后缀 module.exports {/** * 设置缓存 * param {[type]} k [键名] * param {[type]} v [键值] * param {[type]} t [时间、单位秒] */set(k, v, t) {uni.setStorageSync(k, v)const seconds parseInt(t)if (seconds > 0) …

架构(十四)动态Groovy脚本

一、引言 最近作者的平台项目需要实现前端输入脚本,后端在用户设置好的一些情况下运行这段脚本。后端是java,所以我们采用Groovy脚本。 所以要实现的功能就是动态的Groovy脚本! 二、Groovy介绍 了解groovy和python的就可以直接到第三章了 2…

QGis软件 —— 7、QGis - 绘制操作多边形、多边形与线条互转、多边形经纬度导出csv文件

绘制操作多边形 1、绘制多边形(下面附上结果及操作过程) 结果如下: 具体操作: 2、对多边形加入字段信息并显示(下面附上结果及操作过程) 结果如下: 具体操作: 多边形与线条互转 …

加载arcgis切片服务网络请求有大量404错误

需求: 前端访问arcgis切片服务时,在网络请求中出现大量404(Not Found)错误,切片时设置了感兴趣区域,在感兴趣范围内请求切片时能够正常返回切片。 问题分析: 设置感兴趣区域切片的目的是减少站…

【 JS 进阶 】异常处理与 debugger 调试

异常处理 了解 JavaScript 中程序异常处理的方法,提升代码运行的健壮性。 throw 异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行 总结: throw 抛出异常信息,程序也会终止…

AD24-开窗

一、PCB阻焊开窗处理 开窗效果图 1、将铜皮选中,复制,来到阻焊层,利用特殊粘贴 2、如出现报错,可利用实心填充在阻焊层进行重新绘制;在3D状态下进行查看 3、放置一块填充;称为露基材(PCB材料&am…

QT常用事件

鼠标事件(QMouseEvent),如点击、移动、释放等。 键盘事件(QKeyEvent),如按键按下和释放。 窗口事件(QResizeEvent, QMoveEvent),当窗口大小或位置改变时。 绘制事件&…

内网穿透与搭建私人服务器

前言 内网穿透是一种技术,允许用户从外部网络访问内部私有网络中的服务器或设备。这对于想要从任何地方访问家中或办公室内部网络资源的用户非常有用。以下是为初学者准备的关于如何实现内网穿透以及搭建自己的私人服务器的详细指南。 在这个数字化时代,…

弱网演练的小插曲记录

文章目录 1. 写在最前面1.1 关于弱网1.2 关于插曲 2. 模拟弱网的工具2.1 tc2.1.1 原理2.1.2 使用 2.2 blade2.2.1 原理2.2.2 使用 3. tc vs iptable4. 碎碎念5.参考资料 1. 写在最前面 节前在做历史故障演练的 1:1 复现,以验收当前新增的监控告警可以覆盖历史的故障…

python之ftp小工具

文章目录 python之FTP小工具 python之FTP小工具 源码 #!/usr/bin/python3 import os import sys from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler from pyftpdlib.servers import FTPServer import logg…

CP03大语言模型ChatGLM3-6B特性代码解读(1)

CP03大语言模型ChatGLM3-6B特性代码解读(1) 文章目录 CP03大语言模型ChatGLM3-6B特性代码解读(1)总述提示词及UI交互基础conversation.py提示词相关角色Role的处理对话内容字符里的提示词处理 对话基础client.py模型路径等参数设置…

HTTPS(超文本传输安全协议)被恶意请求该如何处理。

HTTPS(超文本传输安全协议)端口攻击通常是指SSL握手中的一些攻击方式,比如SSL握手协商过程中的暴力破解、中间人攻击和SSL剥离攻击等。 攻击原理 攻击者控制受害者发送大量请求,利用压缩算法的机制猜测请求中的关键信息&#xf…

防火墙——计算机网络

前述基于密码的安全机制不能有效解决以下安全问题: 用户入侵: 利用系统漏洞进行未授权登录; 授权用户非法获取更高级别权限等。 软件入侵: 通过网络传播病毒、蠕虫和特洛伊木马。 拒绝服务攻击等。 解决方法: 防火墙&a…

LabVIEW压电驱动迟滞补偿控制

LabVIEW压电驱动迟滞补偿控制 随着精密控制技术的迅速发展,压电陶瓷驱动器因其高精度和快速响应特性,在微纳精密定位系统中得到了广泛应用。然而,压电材料固有的迟滞非线性特性严重影响了其定位精度和重复性。开发了一种基于LabVIEWFPGA的压…

Hive数据仓库行转列

查了很多资料发现网上很多文章都是转发和抄袭,有些问题。这里分享一个自己项目中使用的行转列例子,供大家参考。代码如下: SELECTmy_id,nm_cd_map[A] AS my_cd_a,nm_cd_map[B] AS my_cd_b,nm_cd_map[C] AS my_cd_c,nm_num_map[A] AS my_num_…

MySQL安装教程(详细版)

今天分享的是Win10系统下MySQL的安装教程,打开MySQL官网,按步骤走呀~ 宝们安装MySQL后,需要简单回顾一下关系型数据库的介绍与历史(History of DataBase) 和 常见关系型数据库产品介绍 呀,后面就会进入正式…