Go语言基础语法之一

【Golang学习之旅】Go 语言基础语法概览 ✅ 适合人群: Golang 新手 | 后端开发者 | 面试求职者✅ 文章亮点: 语法详解 + 实战代码 + 高质量示例✅ 目标: 10 分钟快速掌握 Golang 基础语法,助你高效写项目!Go 语言(Golang)是Google开发的一门静态强类型并发支持强语法简洁的编程语言,广泛应用于后端开发云计算微服务区块链等领域。🔹 Go 语言的 4 大核心特点:✅ 语法简洁(减少代码冗余,开发高效)✅ 高性能(比 Python 快,比 Java 简单) 阅读详情

前提

开发环境:vscode配套装完

go版本: go version go1.14.4 windows/amd64

基础说明

1.文件结构

package main

import( "fmt")

func main() {
	fmt.Println("fuck", "trump!")
}

以上是go语法基础结构,也是第一个代码。

注意:Go常用只能用双引号,单引号初学阶段可以直接放弃记忆,当他不存在,后续强大了自己查原因。

2.语法基础

定义变量

// 方式1
var test string;
// 方式2
test2 := "will be string type!"
test3, test4 := "test3", "test4"
// 方式3
var test3, test4 string

注意:go中未使用的变量不允许定义

数据类型以及定义

序号类型和描述
1布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
2数字类型整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
3字符串类型,字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
4派生类型:包括:
(a) 指针类型(Pointer)
(b) 数组类型
© 结构化类型(struct)
(d) Channel 类型
(e) 函数类型
(f) 切片类型
(g) 接口类型(interface)
(h) Map 类型
// 定义数字
var int_1 int
int_1 = 1
fmt.Println(int_1)
int_2 := 2
fmt.Println(int_2)

var int_8 int8
int_8 = 127 // 2^8-1=127
fmt.Println(int_8)

var int_16 int16
int_16 = 111
fmt.Println(int_16)

// 定义字符串
var string_1 string
string_1 = "fuck trump"
string_2 := "fuck trump fmy"
fmt.Println(string_1, string_2)
string_3 := `
mutil line
`

// 定义数组
var balance = [...] float32 {1000.0, 2.0, 3.4, 7.0, 50.0}
fmt.Println(balance)
var balance2=[...]int{123,323,21,2,1,2,3}
fmt.Println(balance2)
balance2[0]= 1000000000000
fmt.Println(balance2)
// 打印数组长度
fmt.Println(len(balance2))

// Channel 通道类型
chan_var := make(chan int)
go func() {
	chan_var <- 111
}()
chan_2 := <- chan_var
fmt.Println(chan_var)
fmt.Println(chan_2)

// 切片类型
var slince_1 []string
fmt.Println(slince_1)
len := 10
var slice1 []string = make([]string, len)
//也可以简写为
slice2 := make([]string, len)
fmt.Println(slice1, slice2)

for循环的两种方式

var balance2=[...]int{123,323,21,2,1,2,3}
fmt.Println(balance2)
balance2[0]= 1000000000000
fmt.Println(balance2)
for i:=0;i<len(balance2);i++ {
    fmt.Println(balance2[i])
}
for _, value := range balance2 {
    fmt.Println(value)
}

其中由于go未经使用的变量不允许定义,故使用range时,会返回两个变量,这里定义为key和value,而key我并没有用到,故要使用占位符 _ ,_ 代表赋值但不使用,相对赋值给一个占位而已。

值得注意的是range可以应用于数组,切片,map等类型中。

结构体类型

结构体类型大致可以弥补类模式缺少的情况,可以组建一个结构体当做类来使用,也具备初始化和赋值方式。

package main

import "fmt"

type struct_book struct {
	title string
	author string
	number int
}

func main() {
	var Book struct_book
	Book.title = "BlogTitle"
	fmt.Printf("Book title: %s", Book.title)
}

channel通道类型详解

通道类型作用于几个协程中都有使用的变量的传递,防止协程中一个变量值和另一个协程使用不一致。

// 创建通道变量,使用切片创建+chan关键字
chan_var := make(chan int) 
go func() {
	// 协程中赋值,赋值操作符 <-
	chan_var <- 111
}()
// 由于通道变量是引用传递,即变量存储的是内存地址,故要将通道变量赋值出来给新的变量
chan_2 := <- chan_var
fmt.Println(chan_var)
fmt.Println(chan_2)

3.切片类型

Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

切片类型会常常用到,故这里作详细说明。

4.指针类型

指针类型指向一个内存地址,用引用,传递引用等。指针类型不能之前赋值一个实际的值,可以交换内存地址。

	var ptr_1 * int
	string_4 := 100;
	ptr_1 = &string_4
	fmt.Println(ptr_1)

5.错误处理机制

go并没有异常捕捉机制,错误只能手动返回和处理,且需要使用接口类型:Error 的struct,改接口属于底层,直接使用即可。
Demo 来源 菜鸟教程

// 定义一个 DivideError 结构
type DivideError struct {
    dividee int
    divider int
}
// 实现 `error` 接口
func (de *DivideError) Error() string {
    strFormat := `
    Cannot proceed, the divider is zero.
    dividee: %d
    divider: 0
`
    return fmt.Sprintf(strFormat, de.dividee)
}
// 定义 `int` 类型除法运算的函数
func Divide(varDividee int, varDivider int) (result int, errorMsg string) {
    if varDivider == 0 {
		dData := DivideError {
				dividee: varDividee,
				divider: varDivider,
		}
		errorMsg = dData.Error()
		return
    } else {
		return varDividee / varDivider, ""
    }
}
func main() {
    if _, errorMsg := Divide(100, 0); errorMsg != "" {
        fmt.Println("errorMsg is: ", errorMsg)
    }
}

参考文献

1.菜鸟教程go教程
2.Go Error处理

Go 语言基础语法 本章节介绍了Go语言的基础语法,包括Go标记、行分隔符、注释、标识符、字符串连接、关键字、空格使用、格式化字符串、数据类型、变量声明、值类型与引用类型、常量以及iota的用法。Go程序由多个标记组成,行分隔符自动处理,注释分为单行和多行。标识符用于命名变量和类型,字符串通过+连接。Go语言有25个关键字和36个预定义标识符,空格用于提高代码可读性。数据类型包括布尔型、数字型、字符串型和派生类型。变量声明使用var关键字,常量使用const定义,iota用于枚举值,自动递增。这些基础语法为编写Go程序提供了必 阅读详情

相关推荐

Go必知必会系列:Go语言基础语法与特性

作者:禅与计算机程序设计艺术 1.简介 Go(Golang)是由Google开发并开源的一门编程语言,由, 及一起创造,于2009年发布,其开发者为了实现更高的并行处理能力、更易于编写安全、快速且可维护的代码而设计出来。Go语言具有相对传统编程语言简单清晰的特点,同时

AI天才研究院 2281

Go语言-语法基础-全面

一.Go基础 1.1. init函数 go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性。 有下面的特征: 1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 ​ 2 每个包可以拥有多个init函数 ​ 3 包的每个源文件也可以拥有多个init函数 ​ 4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明) ​ 5 不同包的init函数按照包导入的依赖关系决定该初始化...

weixin_51991615的博客 6677

SpringBoot使用mybatis-plus的自动代码生成器

一.SpringBoot使用mybatis-plus+自动代码生成 使用mybatis-plus可以自动帮我们生成通用的 controller,service,dao,mapper 二.加入依赖 <!-- MP 核心库 --> <dependency> <groupId>com.baomidou</groupId> <artif...

农民娃儿的博客 2263

Go语言基础语法

Go语言基础语法

YIYIYI 5446

Ai数字人直播系统源码部署

虚拟形象定制,直播内容智能生成,多语言支持,智能互动,声音克隆,24 小时不间断直播,多平台直播,智能数据分析,实时情感识别,视频合成,Ai数字人直播系统源码出售,Ai数字人直播系统源码部署实现 AI 数字人 24 小时不间断直播功能是一个较为复杂的任务,涉及到多个方面,如直播流的推送、内容的持续生成、系统的稳定性保障等。以下为你提供一个简化的实现思路和示例代码,借助 Python 结合 FFmpeg 工具来模拟 24 小时不间断直播。

weixin_ggwwsscc的博客 1257

ESP32-S3打造离线语音助手:从零部署自定义唤醒词与本地大模型推理【实战指南】

本文详细介绍了如何利用ESP32-S3芯片打造离线语音助手,包括自定义唤醒词训练与本地大模型推理的实战指南。通过硬件架构解析、音频处理优化及性能调优技巧,实现低延迟、高隐私保护的语音交互方案,特别适合智能家居和物联网应用。

weixin_30296405的博客 608

go语言的基本语法

自身具有一些特殊含义的标识符Go语言中的预定义标识符一共有。

llllinuuu的博客 1429

机器学习发展历史及现状(重要的期刊,会议,大牛总结)

1 引言 机器学习是指通过计算机学习数据中的内在规律性信息,获得新的经验和知识,以提高计算机的智能性,使计算机能够像人那样去决策。随着各行业对数据的需求量增多,对处理和分析数据的效率要求变高,一系列机器学习算法应运而生。机器学习算法主要是指通过数学及统计方法求解最优化问题的步骤和过程。针对不同的数据和不同模型需求,选择和使用适当的的机器学习算法可以更高效地解决一些实际问题。本文将从机器学习的起源...

Oscar2018的博客 5万+

go语言基础语法

标准格式var 变量名 变量类型 如 var age intboolstringbyte // uint8 的别名rune // int32 的别名 代表一个 Unicode 码当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil 等。所有的内存在 Go 中都是经过初始化的。

程序员一博 1736

从零搭建ROS机械臂仿真环境:Ubuntu 20.04+Noetic下配置睿尔曼RM65的完整流程

本文详细介绍了在Ubuntu 20.04系统中,基于ROS Noetic搭建睿尔曼RM65机械臂的完整仿真环境。从环境准备、工作空间创建到MoveIt!配置与Gazebo仿真环境集成,提供了完整的流程和优化建议,帮助开发者高效实现机械臂仿真与调试。

v6b7n8m9q0的博客 933

阿里开源最强数字人工具 EchoMimicV2,本地部署(一)

EchoMimicV2是阿里推出的半身人体AI数字人项目,基于参考图片、音频剪辑和手部姿势序列生成高质量动画视频,确保音频内容与半身动作的一致性。现在本地部署,安装体验一下。

缘分天空的专栏 4614

【Golang】Go语言基础语法

本文介绍了Go语言的基础语法要点,主要包括:Go程序由标记(关键字、标识符等)组成;行分隔符规则;单行和多行注释写法;标识符命名规范;字符串连接使用"+"运算符;25个关键字和36个预定义标识符;空格在代码格式化中的使用规范;以及Sprintf和Printf两种字符串格式化方法。这些基础语法规则是学习Go语言编程的重要前提,掌握这些内容有助于编写符合规范的Go程序。

weixin_73059729的博客 995

Python自动化车载测试:5分钟搞定CANoe COM接口调用(附完整代码)

本文详细介绍了如何使用Python快速实现CANoe COM接口调用,完成车载测试自动化。通过实战案例展示ECU信号测试框架搭建,包括环境配置、核心架构解析、信号读写封装及多线程安全方案,帮助开发者5分钟内掌握高效测试技巧。

vv45678的博客 1133

AgentScope 2.0 实战指南:从终端调试到 4 步上线多智能体服务

AgentScope 2.0 是阿里通义实验室开源的生产级多智能体框架,要求 Python 3.11+。本文按"本地调试 → 隔离执行 → 权限管控 → 服务化上线"的完整链路展开,帮你把真正敢放心的 AI 智能体交付成多租户在线服务。 ## 三个落地场景:AgentScope 能拿来干什么 先看架构不如先想用途。下面三个场景在仓库里都有可直接运行的示例: **场景一:终端代码助手。** 给

gitblog_00994的博客 847

六、大模型(LLMs)参数高效微调(PEFT) 面

链接: https://pan.baidu.com/s/1TYqdCK53tDFEYGtAvpnTbA 提取码: 6a9s。考核中的核心考点,并针对这些考点提供了详尽的解答。通过网盘分享的文件:06大模型(LLMs)参数高效微调(PEFT) 面。)有哪些方法,能不能稍微介绍一下它们间?这种微调方法和全参数比起来有什么劣势吗?能不能总结一下各种参数高效微调方法?高效参数微调,如何进行存储?多种不同的高效微调方法对比。模型显存占用的部分有哪些?微调方法为啥能加速训练?微调计算可训练参数的比例。

weixin_51988935的博客 535

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Go语言基础】基本语法

本文总结了Go语言的基础语法要点。程序结构包括包声明、导入、常量变量、类型定义和入口函数。词法标记包括关键字、标识符等编译器解析单元。标识符命名规则要求首字符为字母或下划线,区分大小写且不能是关键字。注释支持行注释和块注释,行分隔符自动处理。Go有25个保留关键字和若干预定义标识符。最后通过示例展示了包声明、变量定义、控制结构、函数定义等核心语法。这些是学习Go语言编程的重要基础。

hiliang521的博客 750

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C++GO语言微服务项目之 go语言基础语法

C++GO语言微服务项目之 go语言基础语法

qq_27302885的博客 1283

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Go 语言基础语法详解

Go 语言是一种简洁、高效的编程语言,具有丰富的特性和强大的功能。本文将详细介绍 Go 语言的基础语法,帮助初学者快速入门。

2401_86544677的博客 712

Golang语音基础学习-day03-go语言基础语法

基础语法go语句的构成标识符字符串拼接关键字空格 go语句的构成 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。 fmt.Println(“Hello, World!”) 每行一个标记,标记拆分如下: fmt . Println ( “Hello,World!” } 标识符 标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0...

u014472749的博客 552

Golang教程第3篇(语言基础语法)

单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。在 Go 语言中,空格通常用于分隔标识符、关键字、运算符和表达式,以提高代码的可读性。在函数调用时,函数名和左边等号之间要使用空格,参数之间也要使用空格。程序一般由关键字、常量、变量、运算符、类型和函数组成。

bianenhui91的专栏 900
上一篇: Easyui 分页工具条自动带指定查询参数queryParams
下一篇: Go生成json、解析json和多维json数组解析
苟先
博客等级 码龄15年 15粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值