Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Go语法和特性

Go语言入门之基础语法和常用特性解析

作者:好运小子moYi

这篇文章主要给大家讲解了Go语言的基础语法和常用特性解析,比较适合入门小白,文中通过代码示例介绍的非常详细,对我们学习Go语言有一定的帮助,需要的朋友可以参考下

Go语言的特点

Go语言的基础语法

HelloWorld

package main  //表示一个可独立执行的程序,每个Go应用程序都包含一个名为main的包,一定包含一个main包
import (
    "fmt"
)
func main() {  
    fmt.Println("hello world")  
}

package main表示一个可独立执行的程序,每个Go应用程序都包含一个名为main的包,一定包含一个main

import关键字用于导入其他包(packages)的代码。导入语句通常放置在Go源文件的开头。需要导入多个包,将它们放在圆括号中并用换行符分隔。

fmt是Go语言标准库中的一个包,提供了格式化输入输出的功能。它包含了一系列的函数,可以用来打印文本、格式化字符串、读取输入等。

常用的fmt函数和方法如下:

变量

var + 变量名 + 变量类型 (在Go语言中变量类型在变量名后面)

使用步骤 :

1. 变量的声明

2. 变量的赋值

3. 变量的使用

package main  
import (  
"fmt"  
)  
func main() {  
// 变量的声明  
var A int  
// 变量的赋值  
A = 18  
// 变量的使用  
fmt.Println("A = ", A)  
}
// var 可以自己判断变量类型
var B = 18
// 省略var 用:=
C := "Hello World"

每个类型有默认值,如果不对变量进行赋值,变量的值为默认值

数据类型

在Go语言中,有几种基本的数据类型可以用来存储不同种类的数据。下面是常见的基本数据类型:

指针类型

//声明
var 指针变量名 *数据类型
//赋值
指针变量名 = & 变量名
//通过指针改变变量值 
*指针变量名 = 新值

指针变量名是你给指针变量起的名字

数据类型是指针所指向变量的数据类型。指针变量名前面的*表示该变量是一个指针变量。

指针在Go语言中常用于以下情况:

需要注意的是,在使用指针之前,需要先确保指针不为 nil(空指针),否则会引发运行时错误。

分支结构 (if语句 、switch语句)

if 条件表达式 {
    逻辑代码
}
if 条件表达式 {
    逻辑代码
}
else{
    逻辑代码
}
if 条件表达式 {
    逻辑代码
}
else if 条件表达式 {
    逻辑代码
}
......
else{
    逻辑代码
}
switch 表达式 {
    case 值1,值2, ...:
        语句块1 
    case 值1,值2, ...:
        语句块2 
       ....
    default:
}

循环结构 for循环

for 初始化; 条件; 更新 { 
    // 循环执行的代码块
}

例如,下面的代码会打印从0到4的整数:

for i := 0; i < 5; i++ {
    fmt.Println(i)
}
for 条件 {
    // 循环执行的代码块
}

例如,下面的代码会不断地打印当前的秒数,直到到达10秒:

for time.Now().Second() < 10 {
    fmt.Println(time.Now().Second())
}
for {
    // 循环执行的代码块
}

for range

在Go语言中,for range 是一种特殊的 for 循环形式,用于遍历数组、切片、字符串、映射和通道等数据结构。

for range 的语法如下:

for 索引, 值 := range 表达式 {
    // 循环执行的代码块
}

其中,

使用 for range 循环可以方便地获取每个元素的索引和值,适用于遍历整个数据结构。在每次迭代中,索引 和  会被重新赋值为下一个元素的索引和值,直到遍历完整个数据结构。

以下是一些示例:

numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
    fmt.Println(index, value)
}
text := "Hello, Go!"
for index, value := range text {
    fmt.Println(index, value)
}
person := map[string]interface{}{
    "name":   "Alice",
    "age":    25,
    "gender": "female",
}
for key, value := range person {
    fmt.Println(key, value)
}
data := make(chan int)
go func() {
    data <- 1
    data <- 2
    close(data)
}()
for value := range data {
    fmt.Println(value)
}

需要注意的是,对于字符串和映射,索引 实际上是每个元素的键或键的字节索引。

for range 循环使用得非常广泛,特别是在需要迭代遍历数据结构的情况下。

函数

提高代码的复用性和维护性,减少代码冗余

//函数的声明
 func 函数名 (形参列表)(返回值类型列表){
    执行语句
    return + 返回值列表 
}
//函数的调用
函数名 + (形参1,形参2,...)

注意

函数名 首字母大写,可以在本包文件和其它包文件访问(类似public)

函数名 首字母小写,只能被本包文件访问(类似private)

Go语言函数可以有多个返回值

Go语言函数是一种数据类型赋值给变量,也可以当成其它函数是形参和返回

Go语言中函数不支持重载,但支持可变参数

package main
// 定义一个函数,函数参数为: 可变参数名 + ... + 参数类型 
func test (num...int){
    //函数内部将可变参数当作切片处理
}
func main(){
    test()
    test(1)
    test(2,28,30)
    test(2,...,100)
}

以上就是Go语言入门之基础语法和常用特性解析的详细内容,更多关于Go语法和特性的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文