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

【1】基础语法

1. 注释
go 复制代码
package main

import "fmt"

func main() {
  	// 单行注释
    // 这是一个终端打印文本的功能
    /*
       这是一个多行注释
       这是一个多行注释
       这是一个多行注释
    */
    fmt.Println("hello world!")
}
2. 变量
(1)变量的基本使用
go 复制代码
package main

import "fmt"

func main() {
    //(1)变量的基本使用
    var x = 100
    fmt.Println(x)
    var y = 200
    fmt.Println(y)
    fmt.Println(x + y)
    var z = x + y
    fmt.Println(z)

}
(2) 变量的赋值
go 复制代码
//(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

go 复制代码
var a, b = 100, 200
var c = a + b
fmt.Println(c)

案例3

go 复制代码
var a = 100
var b = a
a = 200
fmt.Println(a, b)

打印出来是 200 100

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

(3)匿名变量

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

go 复制代码
// 匿名变量
var _, b = 100, 200

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

匿名变量不占用命名空间,不会分配内存

让代码非常清晰,基本上屏蔽掉了可能混淆代码阅读者视线的内容,从而大幅降低沟通的复杂度和代码维护的难度。

(4) 变量的命名规范

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

1、变量名称必须由数字、字母、下划线组成。

2、标识符开头不能是数字。

3、标识符不能是保留字和关键字。

4、建议使用驼峰式命名,当名字有几个单词组成的时优先使用大小写分隔

5、变量名尽量做到见名知意。

6、变量命名区分大小写

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

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

相关推荐
benchmark_cc4 分钟前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu16 分钟前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog22 分钟前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友
团子哒哒24 分钟前
数组、切片和Map
后端
专注仿真31 分钟前
ThinkPHP6 API接口开发实例:从零搭建RESTful风格接口
后端·php·restful
开心猴爷44 分钟前
应对iOS审核4.3:可以使用 IpaGuard 来给属性名混淆的技术细节与平衡之道
后端·ios
1m555555551 小时前
RAG 工程实战(五):正确知识已经进入 Prompt,为什么大模型还是会答错?
后端·面试
CoderYanger1 小时前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
易小尊1 小时前
我的模型在 65% 以上时准得可怕,在 50% 时像在掷硬币
后端
用户2788607285671 小时前
fallback 会盖掉平台提示词:system、空数组和 systemAppend 的差别
前端·后端