Golang 简介与基本语法学习
Go,也被称为 Golang,是一门由 Google 设计的开源编程语言。它旨在提供高效的开发体验,同时具备并发性、内存安全和简洁性。本篇博客将介绍 Golang 的基本语法和一些示例,帮助读者快速入门这门令人着迷的语言。
简介
Go 语言的设计灵感来自于 C 语言和 Pascal 语言,它具备静态类型、并发性、垃圾回收等特性。Go 的编程风格简洁明了,使得代码易于理解和维护。它的并发模型通过 goroutines 和 channels 实现,并发编程变得更加容易。此外,Go 还具备自动垃圾回收功能,减轻了开发者的负担。
基本语法学习
Hello World
package mainimport "fmt"func main() {fmt.Println("Hello, World!")
}
以上是一个简单的 Hello World 程序,在终端运行时,输出 “Hello, World!”。
变量与常量
package mainimport "fmt"func main() {var name string = "Alice"age := 30const pi = 3.1415926fmt.Println("Name:", name)fmt.Println("Age:", age)fmt.Println("Pi:", pi)
}
在上面的示例中,展示了如何声明变量和常量,以及初始化它们的方法。
控制流
package mainimport "fmt"func main() {score := 85if score >= 90 {fmt.Println("A")} else if score >= 80 {fmt.Println("B")} else {fmt.Println("C")}for i := 0; i < 5; i++ {fmt.Println(i)}fruits := []string{"apple", "banana", "orange"}for _, fruit := range fruits {fmt.Println(fruit)}
}
上述示例展示了条件语句和循环的使用方法,以及如何遍历数组。
循环示例
package mainimport "fmt"func main() {// for 循环示例fmt.Println("for 循环示例:")for i := 0; i < 5; i++ {fmt.Println(i)}// for 循环遍历数组fmt.Println("\nfor 循环遍历数组示例:")fruits := []string{"apple", "banana", "orange"}for index, fruit := range fruits {fmt.Printf("Index: %d, Fruit: %s\n", index, fruit)}// 使用 for 无限循环fmt.Println("\n使用 for 无限循环示例:")sum := 0for {sum++if sum > 5 {break}}fmt.Println("Sum:", sum)
}
判断示例
package mainimport "fmt"func main() {// if 判断示例fmt.Println("if 判断示例:")score := 85if score >= 90 {fmt.Println("A")} else if score >= 80 {fmt.Println("B")} else {fmt.Println("C")}// switch 判断示例fmt.Println("\nswitch 判断示例:")day := "Monday"switch day {case "Monday":fmt.Println("Today is Monday.")case "Tuesday":fmt.Println("Today is Tuesday.")default:fmt.Println("Other day.")}// 使用 switch 判断多个条件fmt.Println("\n使用 switch 判断多个条件示例:")num := 3switch {case num < 0:fmt.Println("Negative number")case num > 0:fmt.Println("Positive number")default:fmt.Println("Zero")}
}
以上示例分别展示了循环和判断的基本用法。希望这些示例能够帮助您更好地理解 Golang 的语法特性。
函数
package mainimport "fmt"func add(a, b int) int {return a + b
}func main() {result := add(3, 5)fmt.Println("3 + 5 is:", result)
}
在上面的示例中,定义了一个简单的函数 add,用来计算两个整数的和,并在 main 函数中调用这个函数。
在 Go 语言中,导入模块使用 import 关键字。以下是一个示例,展示了如何导入模块:
package mainimport ("fmt""math/rand""time"
)func main() {// 使用 math 包中的函数fmt.Println("Random number:", rand.Intn(100))// 使用 time 包中的函数fmt.Println("Current time:", time.Now())
}
在上面的示例中,我们使用了 import 关键字导入了 fmt、math/rand 和 time 三个模块。可以通过修改代码中的导入模块的路径来导入其他标准库或自定义库。
值得注意的是,在 Go 中惯例是将所有导入的包放在一对圆括号中,每个导入包占据一行。如果要导入多个包,可以通过同时导入它们来减少代码行数。
结构体与方法
package mainimport "fmt"type Person struct {Name stringAge int
}func (p Person) introduce() {fmt.Printf("Hello, my name is %s and I am %d years old.\n", p.Name, p.Age)
}func main() {person := Person{Name: "Bob", Age: 25}person.introduce()
}
这个示例展示了如何定义一个结构体 Person 和为结构体定义方法 introduce,以及如何调用这个方法。
结语
本篇博客介绍了 Golang 的基本语法和特性,希望能帮助读者快速入门这门强大的编程语言。要深入学习更多关于 Golang 的内容,建议阅读官方文档和不同的教程。祝愿大家在使用 Golang 进行开发时取得成功!
相关文章:
Golang 简介与基本语法学习
Go,也被称为 Golang,是一门由 Google 设计的开源编程语言。它旨在提供高效的开发体验,同时具备并发性、内存安全和简洁性。本篇博客将介绍 Golang 的基本语法和一些示例,帮助读者快速入门这门令人着迷的语言。 简介 Go 语言的设…...
深入理解网络通信基本原理和tcp/ip协议
深入理解网络通信基本原理和tcp/ip协议 一、计算机网络体系1,计算机网络体系结构2,网络中数据传输2.1,浏览器中输入一个url的执行流程2.2,数据在网络中是的传输流程 3,三次握手和四次挥手3.1,三次握手3.1.1…...
Jetson系统烧录环境搭建
一 序言 Jetson 系列产品烧录系统的方法一般有两种,一种为使用 NVIDIA 官方提供 的 SDK manager 软件给 Jetson 设备烧录系统(请查看说明文档《Jetson 产品使用 SDKmanager 烧录系统》)。另一种即为当前文档所描述的,在安装 Ubun…...
【MySQL】:约束全解析
🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. 约束概述二. 约束演示三. 外键约束3.1 介绍3.2 语法3.3 删除/更新行为 &…...
设计一基于Text generation web UI的语言模型部署与远程访问的方案
前言 Text generation web UI可为类ChatGPT的大型语言模型提供能够快速上手的网页界面,不仅可以提高使用效率,还可满足私有化部署,或对模型进行自定义。目前,该Web UI已经支持了许多流行的语言模型,包括LLaMA、llama.…...
大数据概述
学习大数据有什么用? 2010年:大数据技术体系开始在国内火热 2015年:国务院印发《促进大数据发展行动纲要》 2016年:发改委发布关于组织实施促进大数据发展重大工程的通知 2017年:工信部印发大数据产业规划(2016-20…...
Muduo库编译学习(1)
1.muduo库简介 muduo是由Google大佬陈硕开发,是一个基于非阻塞IO和事件驱动的现代C网络库,原生支持one loop per thread这种IO模型,该库只支持Linux系统,网上大佬对其褒贬不一,作为小白用来学习就无可厚非了。 git仓库…...
【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug
文章目录 前言 State断点 Transition断点 条件断点 按State步进 Watch Data Value Sequence Viewer 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑…...
ZYNQ--MIG核配置
文章目录 MIG核配置界面多通道AXI读写DDR3MIG核配置界面 Clock Period: DDR3 芯片运行时钟周期,这个参数的范围和 FPGA 的芯片类型以及具体类型的速度等级有关。本实验选择 1250ps,对应 800M,这是本次实验所采用芯片可选的最大频率。注意这个时钟是 MIG IP 核产生,并输出给…...
MySQL 多表查询 连接查询 内连接
介绍 内连接查询是两张表中交集的部分 连接模式 隐式内连接 SELECT 字段列表 FROM 表1,表2 WHERE 条件显式内连接 SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件案例 有两张表一个表为学生表,另一个表为班级表,现在需要查询学生时候在查…...
T - SQL使用事务 及 在Winform使用事务
事务适用场景 1 事务使用在存储过程中,直接在数据库中进行编写 2 事务使用在Winfrom项目中 SQl:使用事务转账操作的实例 一般都会找一个变量记录错误的个数,error记录上一句sql的错误和错误编号 declare errornum int 0 -- 定义…...
string(三)--实现
大家看了这么久的string了,可能对string的简单实现有兴趣,所以我实现了一个string类的常用接口,大家可以自行查看: 我是分多文件写的: string.h: #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include <ios…...
textbox跨线程写入
实现实例1 实现效果 跨线程实现 // 委托,用于定义在UI线程上执行的方法签名 //public delegate void SetTextCallback(string text);public void textBoxText(string text){// 检查调用线程是否是创建控件的线程 if (textBox1.InvokeRequired){// 如果不是&#…...
幻兽帕鲁专用服务器搭建之Linux部署配置教程
大家好我是飞飞,上一期我分享了Windows系统的幻兽帕鲁服务器搭建教程。因为幻兽帕鲁这游戏对服务器的配置有一定的要求,很多小伙伴就寻思用Linux系统搭建占用会不会小一点?有计算机基础的小伙伴都知道Linux系统和Windows系统相比,…...
Kubernetes: 本地部署dashboard
本篇文章主要是介绍如何在本地部署kubernetes dashboard, 部署环境是mac m2 下载dashboard.yaml 官网release地址: kubernetes/dashboard/releases 本篇文章下载的是kubernetes-dashboard-v2.7.0的版本,通过wget命令下载到本地: wget https://raw.githubusercont…...
Outlook邮箱IMAP密码怎么填写?账户设置?
Outlook邮箱IMAP密码是什么?Outlook如何设置IMAP? 许多用户会选择通过IMAP协议将邮箱与各种邮件客户端进行连接。而在设置过程中,填写IMAP密码是必不可少的一步。那么,Outlook邮箱的IMAP密码应该如何填写呢?接下来&am…...
[计算机网络]--I/O多路转接之poll和epoll
前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、poll函…...
【NTN 卫星通信】卫星和无人机配合的应用场景
1 场景概述 卫星接入网是一种有潜力的技术,可以为地面覆盖差地区的用户提供无处不在的网络服务。然而,卫星覆盖范围对于位于考古或采矿地点内部/被茂密森林覆盖的村庄/山谷/靠近山丘或大型建筑物的用户可能很稀疏。因此,涉及卫星接入和无人驾…...
Git 分布式版本控制系统
Git是一个分布式版本控制系统,可以记录项目文件的变动并管理项目的不同版本。以下是Git的基本概念和使用方式: 仓库(Repository):Git用仓库来存储项目文件。仓库可以是本地仓库,也可以是远程仓库࿰…...
ng : 无法将ng项识别为 cmdlet、函数、脚本文件或可运行程序的名称
ng : 无法将“ng”项识别为 cmdlet、函数、脚本文件或可运行程序的名称”,出现这种错误,那说明你angular-cli没有下载所以环境变量里没有相应的东西 1、需要在cmd里输入npm install -g angular/cli 2、之后运行angular命令时还可能出现这种错误 “ng : …...
Janus-Pro-7B显存优化:7B模型仅需2.1GB VRAM完成图文联合推理
Janus-Pro-7B显存优化:7B模型仅需2.1GB VRAM完成图文联合推理 1. 引言:突破性的显存优化方案 你是否曾经遇到过这样的情况:想要运行一个强大的多模态AI模型,却被显存限制卡住了?传统的7B参数模型通常需要8GB以上的VR…...
PROJECT MOGFACE开发环境配置指南:从Ubuntu系统到模型服务部署
PROJECT MOGFACE开发环境配置指南:从Ubuntu系统到模型服务部署 你是不是也遇到过这种情况:好不容易找到一个心仪的AI模型,比如最近挺火的PROJECT MOGFACE,结果一看部署文档,从系统配置到环境依赖,密密麻麻…...
Qwen3-14B航天领域探索:遥测数据解读、任务规划建议、故障预案生成
Qwen3-14B航天领域探索:遥测数据解读、任务规划建议、故障预案生成 1. 航天领域AI应用概述 航天工程是典型的高复杂度系统工程,涉及海量数据处理、精密任务规划和严苛安全要求。传统工作流程面临三大核心挑战: 遥测数据解读:卫…...
SDD基于规范编程-OpenSpec及SuperPowers狙
智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖…...
分享 种 .NET 桌面应用程序自动更新解决方案骋
一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…...
LabVIEW 环境下TSP与SCPI 指令对比分析
TSP(Test Script Processor)是泰克吉时利面向高端自动化测试系统推出的仪器端嵌入式脚本处理引擎,基于 Lua 语法,支持本地逻辑运算、多模块协同与后台运行;SCPI(Standard Commands for Programmable Instru…...
5分钟体验MogFace:高精度人脸检测工具,支持遮挡和侧脸识别
5分钟体验MogFace:高精度人脸检测工具,支持遮挡和侧脸识别 1. 引言:为什么选择MogFace? 想象一下这样的场景:你正在整理家庭相册,发现一张20年前的老照片,照片里的人们或侧身、或戴着帽子、或…...
StableSR与传统超分辨率方法对比:为什么它是未来的方向
StableSR与传统超分辨率方法对比:为什么它是未来的方向 【免费下载链接】StableSR Exploiting Diffusion Prior for Real-World Image Super-Resolution 项目地址: https://gitcode.com/gh_mirrors/st/StableSR StableSR是一款基于扩散先验的图像超分辨率工具…...
股票和估值到底是什么:估值的本质:是共识,是信心,是集体的幻觉; 股票的本质,是一张所有权凭证
股票和估值到底是什么?用一个苹果的故事讲透最核心的本质 股票到底是什么?估值又是什么?为什么一个不赚钱的公司能值1000亿?" 股市里90%的骗局,本质上都是在"估值"这两个字上做文章。 一、股票:不是筹码,是"苹果树的所有权" 先讲股票的原始…...
React Easy State 在 React Native 中的应用:跨平台状态管理解决方案
React Easy State 在 React Native 中的应用:跨平台状态管理解决方案 【免费下载链接】react-easy-state Simple React state management. Made with ❤️ and ES6 Proxies. 项目地址: https://gitcode.com/gh_mirrors/re/react-easy-state React Easy State…...
