Golang基础语法学习与速成

2024-08-21 22:20

本文主要是介绍Golang基础语法学习与速成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:CSDN-PleaSure乐事

欢迎大家阅读我的博客 希望大家喜欢

目录

1.golang介绍

1.1介绍

1.2优势

2.语法

2.1控制台输出

2.2算术运算符

2.3变量常量

2.4for循环

2.5if语句

2.6switch语句

2.7作用域

2.8浮点数和零值

2.8.1浮点数

2.8.2零值

2.9格式化动词

2.10整数和字符串

2.11字符串字面值和原始字符串

2.12字符

2.13类型别名

2.14常用内置函数

2.14.1range

2.14.2len

2.15环绕行为(溢出)

2.16布尔类型转换

2.17结构体

2.18接口


1.golang介绍

1.1介绍

Go(也称为Golang)是由Google开发的一种静态类型、编译型的编程语言。Go的设计目标是简单、高效、易于学习,并且能够解决现代软件工程中遇到的一些常见问题,如并发编程的复杂性。下图就是经典的有关Go的图:

1.2优势

go具有以下优势:

  1. 并发支持:Go通过goroutines和channels提供了轻量级的并发机制,使得编写并发程序变得简单直观。
  2. 垃圾回收:Go具有自动内存管理功能,这意味着程序员不需要手动管理内存,从而减少了内存泄漏和其他内存相关错误的可能性。
  3. 跨平台编译:Go支持在不同的操作系统和架构上编译程序,使得开发者能够在一台机器上为多平台编译程序。

2.语法

需要注意的是,在进行Go语言的编写前,需要导入相应的包,否则编译可能会失败。

2.1控制台输出

Go语言提供了标准库fmt中的Println, Printf 和 Print 函数来输出文本到标准输出流。

package main
import "fmt"
func main() {fmt.Println("Hello, world!")
}

2.2算术运算符

Go支持基本的算术运算符,如加法 +、减法 -、乘法 *、除法 / 和取模 %。

package main
import "fmt"
func main() {x := 10y := 3fmt.Println("Addition:", x+y)fmt.Println("Subtraction:", x-y)fmt.Println("Multiplication:", x*y)fmt.Println("Division:", x/y)fmt.Println("Modulus:", x%y)
}

2.3变量常量

Go中的变量声明使用 var 关键字,而常量使用 const 关键字。

package main
import "fmt"
func main() {var age int = 25const name string = "Alice"fmt.Println("Name:", name)fmt.Println("Age:", age)
}

2.4for循环

Go支持 for 循环,可以用作无限循环、计数循环或迭代数组/切片等。

package main
import "fmt"
func main() {for i := 0; i < 5; i++ {fmt.Println(i)}
}

2.5if语句

Go中的条件语句使用 if 关键字。

package main
import "fmt"
func main() {x := 10if x > 0 {fmt.Println("x is positive")} else {fmt.Println("x is not positive")}
}

2.6switch语句

Go中的 switch 语句可以用来比较表达式的值或类型。

package main
import "fmt"
func main() {x := 1switch x {case 1:fmt.Println("One")case 2:fmt.Println("Two")default:fmt.Println("Unknown")}
}

2.7作用域

变量的作用域决定了它可以被访问的区域。全局变量在整个程序中可见,局部变量仅在其声明的块中可见。

package main
import "fmt"
func main() {var globalVar int = 10func() {var localVar int = 20fmt.Println("Local variable:", localVar)}()fmt.Println("Global variable:", globalVar)
}

2.8浮点数和零值

2.8.1浮点数

Go中的浮点数有两种类型:float32float64

2.8.2零值

未初始化的变量默认为零值,对于浮点数来说就是 0.0。

package main
import "fmt"func main() {var f float64fmt.Println("Zero value of float64:", f) // 输出 0.0f = 3.14fmt.Printf("Formatted float: %.2f\n", f) // 输出 3.14
}

2.9格式化动词

使用 fmt.Printf 或 fmt.Sprintf 可以格式化输出。

package main
import "fmt"
func main() {f := 3.14159fmt.Printf("Formatted float: %.2f\n", f) // 输出 3.14
}

2.10整数和字符串

Go中的整数类型包括 int, int8, int16, int32, int64 以及无符号整数类型 uint, uint8, uint16, uint32, uint64 和 uintptr。

package main
import "fmt"
func main() {var i int = 10var s string = "Go"fmt.Println("Integer:", i)fmt.Println("String:", s)
}

2.11字符串字面值和原始字符串

字符串字面值可以用双引号或反引号包围,后者可以包含换行符等特殊字符。

package main
import "fmt"
func main() {s := "Hello, world!"r := `Hello,
world!`fmt.Println("String literal:", s)fmt.Println("Raw string:", r)
}

2.12字符

Go中的字符类型为 rune,实际上是一个32位整数,用于表示Unicode字符。

package main
import "fmt"
func main() {c := 'A'fmt.Printf("Character: %c\n", c)
}

2.13类型别名

类型别名是为现有类型赋予一个新名称。

package main
import "fmt"
type MyInt int
func main() {var x MyInt = 10fmt.Println("Type alias value:", x)
}

2.14常用内置函数

2.14.1range

range 可以用来迭代数组、切片、字符串或映射。

2.14.2len

len 返回数组、切片、字符串或映射的长度

package main
import "fmt"
func main() {s := "hello"fmt.Println("Length of string:", len(s))for i, char := range s {fmt.Printf("Index %d: %c\n", i, char)}
}

2.15环绕行为(溢出)

整数运算如果超过了最大值,会从最大值回到最小值。

package main
import "fmt"
func main() {var i int8 = 127i++fmt.Println("Overflowed int8:", i) // 输出 -128
}

2.16布尔类型转换

布尔类型可以与其他类型进行转换。

package main
import "fmt"
func main() {var b bool = truevar i int = boolToInt(b)fmt.Println("Converted to int:", i)func() {var x int = 0fmt.Println("Boolean conversion:", x == 0)}()
}func boolToInt(b bool) int {if b {return 1}return 0
}

2.17结构体

结构体是一种组合数据类型,可以将不同类型的数据组合在一起。

package main
import "fmt"
type Person struct {Name stringAge  int
}func main() {alice := Person{"Alice", 30}fmt.Println("Person:", alice)
}

2.18接口

接口定义了一组方法的集合,任何实现了这些方法的类型都可以实现该接口。

package main
import "fmt"
type Shape interface {Area() float64
}type Circle struct {Radius float64
}func (c Circle) Area() float64 {return 3.14 * c.Radius * c.Radius
}func printArea(s Shape) {fmt.Println("Area:", s.Area())
}func main() {circle := Circle{Radius: 5}printArea(circle)
}

作者:CSDN-PleaSure乐事

希望我的博客对您有帮助,也希望在对您有帮助时您可以为我留下点赞收藏与关注,这对我真的很重要,谢谢!

这篇关于Golang基础语法学习与速成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094447

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式