go语言基础教程:【1】基础语法:变量

【1】基础语法

1. 注释
package mainimport "fmt"func main() {// 单行注释// 这是一个终端打印文本的功能/*这是一个多行注释这是一个多行注释这是一个多行注释*/fmt.Println("hello world!")
}
2. 变量
(1)变量的基本使用
package mainimport "fmt"func main() {//(1)变量的基本使用var x = 100fmt.Println(x)var y = 200fmt.Println(y)fmt.Println(x + y)var z = x + yfmt.Println(z)}
(2) 变量的赋值
//(2) 变量的语法
// var 变量名 类型 = 表达式   先声明,再赋值
var x int8 // 声明一个int8类型的变量
x = 100    // 给变量赋值
fmt.Println(x)
var y = 200 // 声明一个int类型的变量,并赋值
fmt.Println(y)// 简写形式
z := 300 // var z = 300
fmt.Println(z)var a, b, c = 100, 200, 300
fmt.Println(a, b, c)

扩展

案例1

var x = 100
var x = 200
fmt.Println(x)

打印我们发现报错了

请添加图片描述

  1. 重复声明变量错误:

代码中连续两次使用var x = ...声明同一个变量x,这在Go语言中是不允许的

Go不允许在同一作用域内重复声明同名变量

  1. 正确的做法应该是:
var x = 100  // 声明并初始化
x = 200      // 重新赋值
fmt.Println(x)

或者使用不同的变量名

案例2

var a, b = 100, 200
var c = a + b
fmt.Println(c)

案例3

var a = 100
var b = a
a = 200
fmt.Println(a, b)

打印出来是 200 100

var b = a 指的值拷贝,并不是 b指向a的内存

(3)匿名变量

匿名变量即没有命名的变量,在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。匿名变量用一个下划线_表示。

// 匿名变量
var _, b = 100, 200// _ 是一个特殊的标识符,任何赋予它的值都会被抛弃
// 因此,_ 通常用于忽略调用函数的返回值
// 例如:fmt.Println()函数输出结果后,会将结果丢弃,所以使用 _ 来接受这个结果
fmt.Println(b)

匿名变量不占用命名空间,不会分配内存
让代码非常清晰,基本上屏蔽掉了可能混淆代码阅读者视线的内容,从而大幅降低沟通的复杂度和代码维护的难度。

(4) 变量的命名规范

变量命名是需要遵循一定的语法规范的,否则编译器不会通过。

1、变量名称必须由数字、字母、下划线组成。
2、标识符开头不能是数字。
3、标识符不能是保留字和关键字。
4、建议使用驼峰式命名,当名字有几个单词组成的时优先使用大小写分隔
5、变量名尽量做到见名知意。
6、变量命名区分大小写

go语言中有25个关键字,不能用于自定义变量名

请添加图片描述

还有30多个预定义的名字,用于内建的常量、类型和函数

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型各类概念扫盲

以下内容整理自AI,进行一个概念扫盲:Prompt(提示词) Prompt是用户提供给AI模型的指令或问题,用于引导模型生成特定输出。良好的Prompt设计能显著提升模型的任务理解能力和响应质量,例如通过结构化提示&…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-评论用户名词云图实现

大家好,我是java1234_小锋老师,最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程,持续更新中,计划月底更新完,感谢支持。今天讲解主页-评论用户名词云图实现 视频在线地址&…

Springmvc的自动解管理

中央转发器&#xff08;DispatcherServlet&#xff09;控制器视图解析器静态资源访问消息转换器格式化静态资源管理一、中央转发器Xml无需配置<servlet><servlet-name>chapter2</servlet-name><servlet-class>org.springframework.web.servlet.Dispatc…

JavaScript中this的5大核心规则详解

在 JavaScript 中&#xff0c;this 是一个特殊关键字&#xff0c;其值取决于函数的 调用方式 而非定义位置。它的行为遵循一套明确的规则&#xff0c;以下是核心规则和示例&#xff1a;1. 默认绑定&#xff08;独立函数调用&#xff09; 当函数独立调用时&#xff08;不作为方法…

深度分析Java内存回收机制

内存回收机制是Java区别于C/C等语言的核心特性之一&#xff0c;也是Java开发者理解程序性能、解决内存相关问题&#xff08;如内存泄漏、OOM&#xff09;的关键。 核心目标&#xff1a; 自动回收程序中不再使用的对象所占用的内存&#xff0c;防止内存耗尽&#xff0c;同时尽量…

字节 AI 编辑器 Trae 2.0 SOLO 出道! 国际版不充分指南及与国内版的对比

最近 Trae 2.0 上线&#xff0c;带来了强势的 SOLO&#xff0c;一个能自主执行开发任务的超级个体&#xff0c;集成编辑器、终端、浏览器等多工具视图于一体&#xff0c;打通从构思到落地的完整链路。 不过国内版需要预约&#xff08;饥饿营销&#xff1f;&#xff09;&#x…

二分查找----3.在排序数组中查找元素的第一个和最后一个位置

题目链接 /** 在一个近似递增的数组中查找指定元素,该元素可能有多个找出其出现的区间 单次普通二分只能查到一个元素且无法确定边界;对二分改进即可 左边界:当查到目标元素时,记录下标并将right迭代为mid-1,继续向左二分直到搜寻结束,得到左边界 右边界:当查到目标元素时,记录…

修改 Lucide-React 图标样式的方法

修改 Lucide-React 图标样式的方法 使用 lucide-react 时&#xff0c;你可以通过多种方式修改图标的样式。以下是几种常用的方法&#xff1a; 1. 通过 className 属性 import { Home } from lucide-react;function MyComponent() {return <Home className"text-blue-50…

新手向:Idea的使用技巧

为什么选择IntelliJ IDEA作为Java开发工具&#xff1f; IntelliJ IDEA被誉为Java开发者的"智能助手"&#xff0c;它就像手机里的Siri或小爱同学一样&#xff0c;能够智能地辅助开发者完成各种编程任务。 具体来说&#xff0c;IDEA具有以下突出优势&#xff1a; 智…

自动化运维:从脚本到DevOps的演进

自动化通常从编写脚本开始&#xff0c;这些脚本可以自动执行常规任务&#xff0c;如备份数据、更新软件或监控系统性能。例如&#xff0c;一个简单的Bash脚本可以定期检查磁盘空间并清理临时文件&#xff1a;#!/bin/bash # Disk Cleanup Script threshold80 # Set threshold…

Python机器学习:从零基础到项目实战

目录第一部分&#xff1a;思想与基石——万法归宗&#xff0c;筑基问道第1章&#xff1a;初探智慧之境——机器学习世界观1.1 何为学习&#xff1f;从人类学习到机器智能1.2 机器学习的“前世今生”&#xff1a;一部思想与技术的演进史1.3 为何是Python&#xff1f;——数据科学…

【kubernetes】-2 K8S的资源管理

文章目录K8S的资源管理1、资源管理方式简介1.1 陈述式管理资源的方法1.2 kubernetes 集群资源管理入口2、kubectl 常用命令2.1 集群操作2.2 资源操作2.3 项目生命周期管理2.3.1 创建2.3.2 发布2.3.3 更新2.3.4 回滚2.3.5删除3、图解服务发布阶段 1&#xff1a;外部客户端 → 节…